1

我定义结构

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

那么有什么办法可以解决这个问题吗?谢谢。

4

0 回答 0