std :: strings的类型转换

时间:2016-08-23 20:05:32

标签: c++ templates c++11

是否可以为类提供类似全局类型转换运算符的功能?我正在寻找一种方法来展示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似乎都有太多的调用,所以试图在这里懒惰。

1 个答案:

答案 0 :(得分:0)

只需创建一个与代码接口的函数。

some_func(const char* c)

interface(string s) {
    some_func(s.c_str());
}

如果你将界面的名称与some_func相同,那就更好了。