Я столкнулся с необходимостью передать неконстантный массив stati c в константный аргумент. Как я обнаружил, const_cast может использоваться не только для удаления, но и для добавления константности к типу. Итак, вот упрощенная версия того, что я пытаюсь сделать:
int a[3] = { 1, 2, 3 };
const int b[3] = const_cast<const int[3]&>( a );
Однако кажется, что компилятор не может проанализировать это с ошибками типа
5:43: error: expected '>' before '&' token
5:43: error: expected '(' before '&' token
5:44: error: expected primary-expression before '>' token
5:50: error: expected ')' before ';' token
Я также пытался использовать указатели, но получил те же ошибки. Кроме того, я не хочу переключаться на указатели, так как для этого потребуется обновить довольно большой кусок кода.
Это кажется относительно простой задачей, но я уже застрял на этом некоторое время и не был смог найти любую полезную информацию, даже отдаленно связанную с этой топи c.
UPD:
Благодаря комментариям я обнаружил, что причина root в моем случае не была связана с const_cast. Если кому-то интересно, я пытался инициализировать вектор списком массивов stati c разных размеров, что, по-видимому, невозможно.
Однако, поскольку это был неочевидный синтаксис ссылки на массив, что заставило меня задать вопрос Я собираюсь принять ответ, который объясняет это.