我正在使用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'。 –