我正在使用C++中的string::find
搜索子字符串。當我使用const auto
定義了一個字符串並稍後使用了該變量時,eclipse將.
替換爲->
。在C++中使用auto foo =「bar」vs std :: string 11
我發現這個SO thread其結論是auto foo = "bar"
推斷爲(const char *) foo = "bar"
。所以日食是正確的轉換.
到->
即使我有點困惑開始。我錯誤地認爲auto
將成爲std::string
。
會有下行推導auto foo = "bar"
到std::string
而不是const char *
?代碼大小增加,性能下降?
類型' 「欄」''是爲const char [4]'。我不知道你爲什麼認爲這應該被自動轉換爲'std :: string'。 – IInspectable
我認爲你很容易混淆這個事實,即你可以將一個'const char *'或'const char [4]'賦值給一個字符串:'std :: string str =「bar」;'引號之間的任何內容只是一個普通的const char數組。 –
如果你想讓這個類型成爲'std :: string'就這麼說。不要在這裏使用'auto'。 –