我的课是这样的:
class X {
public:
:
:
:
operator const char*() const { return "foo"; };
operator std::string() const { return std::string( "foo" ); };
:
:
:
};
我希望能够像这样隐式地初始化 std::string ,但是会出现大量错误:
string s1( x );
甚至明确地不起作用:
string s1( (string) x );
但是将 x 转换为(const char*)
工作正常:
string s1( (const char*) x );
除了你们拥有的任何解决方案之外,还有任何其他建议来制作一种应该可以自由转换为 C 样式字符串和std:string
?(我已经有用于 Xconst char*
和std::string
x 的构造函数,并且可以从这些类型中进行赋值。