如何使用双重铸造的static_cast

时间:2017-11-03 12:21:26

标签: c++ c++11 casting

如何将static_cast与类似的转换类型一起使用:

CString response;
resultData = (void *) (const char *) response;

结果数据的类型为void *&

我尝试以下列方式做到这一点:

resultData = static_cast<(void*)(const char*)>(response);
resultData = static_cast<void*>(static_cast<const char*>(response));

但它不起作用。

你有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您需要转换为const void *

resultData = static_cast<const void*>(static_cast<const char*>(response));

或者您需要使用const_cast(删除const所需的内容,static_cast无法将其删除):

resultData = static_cast<void*>(const_cast<char *>(static_cast<const char*>(response)));

注意:如果您的resultDatavoid *,则不需要转换为void *