是否可以为类提供类似全局类型转换运算符的功能?我正在寻找一种方法来展示const char*
中的std::string
。我尝试定义一个全局运算符,但不编译。通过快速搜索并查看cpp引用,这些用户定义的转换需要是成员http://en.cppreference.com/w/cpp/language/cast_operator。
是否有任何干净(或黑客)方式将std::string
传递给接受const char*
的方法,而不是始终使用c_str()
。
我正在跨平台工作,我主要来自Windows。我的大多数课程都使用ATL::CString
。我正在改变它们以使用std::string
的。调用c_str
很好,但在单元测试代码中,每一行和每个args似乎都有太多的调用,所以试图在这里懒惰。
答案 0 :(得分:0)
只需创建一个与代码接口的函数。
some_func(const char* c)
到
interface(string s) {
some_func(s.c_str());
}
如果你将界面的名称与some_func相同,那就更好了。