我的程序需要很多ANSI< => UNICODE对话,所以我有了创建multitype对象的想法,它将比添加国家功能和许多新/删除更容易转换所有内容。伪代码:
class CWchar // char based
{
public:
public static implicit operator wchar_t*(CWchar cw)
{
// converting cw.data to wchar_t
// up to U+FFFF conversion needed
}
public static implicit operator char*(CWchar cw)
{
return cw.data;
}
CWchar& CWchar::operator=(const char* c)
{
data = *c;
return *this;
}
CWchar& CWchar::operator=(const wchar_t* c)
{
//conversion to char* ...
return *this;
}
// add some smart pointers, garbage collector, and leave delete
private:
char* data;
}
这真的值得编码还是我应该考虑另一种解决方案?也许已经完成了项目?或许我错了,这个想法很糟糕?感谢
答案 0 :(得分:1)
这听起来很像codecvt。这允许您在Char *和多字节wchar_t *流之间进行转换。这是标准库的一部分。 Stroustrup的第三版The C ++ Programming Language对此有一个很好的附录。