到目前为止,我已经尝试了这个方法,但是在下面的代码中仍然出现错误:
#include<iostream>
typedef unsigned short unichar;
typedef const unichar unimap_t[2];
unimap_t x = {0x0004,0x00ff};
const unimap_t * ret()
{
return x;
}
int main()
{
unsigned short* pX2 = const_cast < unsigned short* > (ret());
std::cout <<pX2[1];
return 0;
}
我遇到了以下错误。
a.cpp: In function ‘int main()’:
sa.cpp:22:60: error: invalid const_cast from type ‘const unichar (*)[2]
{aka const short unsigned int (*)[2]}’ to type ‘short unsigned int*’`
const unsigned short
转换为unsigned short
),但在代码中,他试图做一些完全不同的事情(将const unsigned short (*)[2]
转换为unsigned short*
)。这并不意味着它应该被投票否决,这是一个诚实的错误,但它绝对需要一些澄清。 - Benjamin Lindley