C++ 最近的转换错误

标签 c++ casting

在维护使用 libmxl2 的旧代码时,出现以下错误:

error: invalid static_cast 
       from type ‘const char [8]’ 
       to type ‘xmlChar* {aka unsigned char*}’

在下面的代码中:

xmlNodePtr messageNode = doc->children; // The "Message" node
if(xmlStrcmp(messageNode->name, static_cast<xmlChar*>("Message"))) ... blabla

(同样的错误发生在reinterpret_cast)

显然,我可以使用旧式转换 (xmlChar*) 来解决,但最近在 C++ 中执行此操作的正确方法是什么?

我用的是gcc 4.7.2(这段代码是5年前编译的:)没有这个错误,但不要问旧编译器的版本:))

最佳答案

经过一些转换组合之后,这个工作:

const_cast<xmlChar*>(reinterpret_cast<const xmlChar *>("Message"))

关于C++ 最近的转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22838802/

相关文章:

C++ stof函数转换为整数

c++ - 使用包含类的动态实例化后调用 C++ 重载运算符 [] 似乎不起作用

c++ - C和C++对内存的误解

C# 和接口(interface) - 显式与隐式

java - 将对象转换为通用类型以返回

C++ 工厂和类型转换问题

c++ - 表示 2000 位或更多位的整数

c++ - 理解问题: Precompiled headers & include usage

c++ - (gcc) 编译器是否优化了空体函数?

c++ - 什么时候需要显式指针类型转换?