我有:
unsigned char *foo();
std::string str;
str.append(static_cast<const char*>(foo()));
错误:invalid static_cast from type ‘unsigned char*’ to type ‘const char*’
在这里使用C++风格进行造型的正确方法是什么?
发布于 2009-03-18 16:01:44
reinterpret_cast
发布于 2009-03-18 16:10:41
char *
和const unsigned char *
被视为不相关的类型。所以你想使用reinterpret_cast
。
但是,如果您要从const unsigned char*
转换为非const
类型,则需要首先使用const_cast
。reinterpret_cast
不能丢弃const
或volatile
限定。
发布于 2009-03-18 16:05:42
试试reinterpret_cast
unsigned char *foo();
std::string str;
str.append(reinterpret_cast<const char*>(foo()));
https://stackoverflow.com/questions/658913
复制相似问题