Почему в C ++ 11 было снято ограничение на оператор запятой в константном выражении?
Недавно когдаотвечая на вопрос Я понял, чтооператор запятой допускается в постоянном выражении вC ++ 11 до тех пор, пока выражение окружено()
, например:
int a[ (1, 2) ] ;
Pre C ++ 11 запрещено использоватьоператор запятой в константном выражении, из черновика предварительного стандарта C ++ 115.19
Постоянные выражения который говорит (акцент мой):
[...] В частности, за исключением выражений sizeof, функции, объекты классов, указатели или ссылки не должны использоваться, а присваивание, приращение, уменьшение, вызов функции илиЗапятые не должны использоваться.
Почему оператор запятой не допускался в константном выражении до C ++ 11 и почему это ограничение было снято?