Разрешено ли следующее:
const int const_array[] = { 42 };
int maybe_inc(bool write, int* array) {
if (write) array[0]++;
return array[0];
}
int main() {
return maybe_inc(false, const_cast<int *>(const_array));
}
В частности, можно ли отбросить константу const_array
, которая была определена как const, если объект фактически не изменен, как в примере?
const_cast
не приводит к UB. См. Также (возможный дубликат?): stackoverflow.com/questions/29883327/ - person Cody Gray   schedule 03.02.2019