До сих пор я попытался это, но я все еще получаю ошибку в коде ниже:Как преобразовать const unsigned short в unsigned short?
#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*’`
Почему это проголосовали? Вопрос ясен, на плакате показан код. И это вопрос с вопросом практического программирования. – hetepeperfan
@hetepeperfan: На самом деле вопрос непонятен. Название спрашивает, как сделать одно (преобразовать 'const unsigned short' в' unsigned short'), но в коде он пытается сделать что-то совсем другое ('convert const unsigned short (*) [2]' к 'unsigned short *'). Это не значит, что он заслуживает ниспроверки, это честная ошибка, но это определенно нуждается в некоторых разъяснениях. –