我定义结构
struct X{
char v;
static int c;
X():v(){c++};
~X(){c--};
...
};
和
typedef std::basic_string<X> xs;
那么有没有什么方法可以在没有显式转换的情况下使用构造?我可以用这种方式初始化新字符串:
xs expl_conversion((X*)"olololo");
但是有没有办法通过隐式转换来做到这一点?
xs impl_conversion("olololo");
可能是一种转换运算符,但 std::basic_string 没有变化。
当我尝试使用这样的东西时:
X * operator X*(char* dat){ return (X*)(dat);}
编译器回答:
operator X**(char*) must be a nonstatic member function
那么有什么办法可以解决这个问题吗?谢谢。