我刚刚写了一个函数:
void doSomeStuffWithTheString(const std::string& value) {
...
std::string v = value;
std::cout << value.c_str();
...
}
但后来我称之为
doSomeStuffWithTheString("foo");
它有效。所以我会认为这可以工作(一个 const char* 来初始化 std::string 的隐式实例)该值必须按值传递,但在这种情况下是通过 (const) 引用传递的。
当引用为 const 时,是否有可能从 const char* 实例化隐式时间 std::string?如果没有,那么这可能如何工作?
编辑
如果函数重载会发生什么
void doSomeStuffWithTheString(const char* value);
哪一个会选择编译器?