参考:https://stackoverflow.com/questions/57101717/prevent-string-literals-from-being-converted-to-bool-versus-stdstring
问题:有两个重载函数 int a(std::string a)
和 int a(bool b)
,结果在调用字符串版本的 a("abc")
的时候,编译器自动去调用 int a(bool b)
了。
解决:直接声明一个 int a(const char *)
函数,然后里面再调用 a(std::string(a))