Информация об изменениях

Сообщение Re[15]: Когда это наконец станет defined behavior? от 04.05.2023 15:20

Изменено 04.05.2023 15:24 rg45

Re[15]: Когда это наконец станет defined behavior?
Здравствуйте, B0FEE664, Вы писали:

R>> Константностью ссылок невозможно доказать константность объекта.

BFE>Можно, так как неконстантная ссылка не может быть автоматически создана на константный объект.
BFE>Но зачем так сложно?
BFE>Вот это, естественно, не скомпилируется:
BFE>
BFE>struct S { const int i; };
BFE>S x{2};
BFE>x.i = 3;
BFE>

BFE>Чем не доказательство, что x.i — константный подобъект?

По этой логике, следующий фрагмент тоже можно пытаться выдать за доказательство константности:

int i;
const int& r = i;
r = 3;


Фигня это все, а не доказательства.
Re[15]: Когда это наконец станет defined behavior?
Здравствуйте, B0FEE664, Вы писали:

R>> Константностью ссылок невозможно доказать константность объекта.

BFE>Можно, так как неконстантная ссылка не может быть автоматически создана на константный объект.
BFE>Но зачем так сложно?
BFE>Вот это, естественно, не скомпилируется:
BFE>
BFE>struct S { const int i; };
BFE>S x{2};
BFE>x.i = 3;
BFE>

BFE>Чем не доказательство, что x.i — константный подобъект?

По этой логике, следующий фрагмент тоже можно пытаться выдать за доказательство константности:

int i;
const int& r = i;
r = 3;


Фигня это все, а не доказательства.

Если тебе так уже приспичило что-то доказвать, то докажи, что пример ниже порождает неопределенное поведение, и обоснуй ссылками на стандарт:

struct S { const int i; };
S x{2};
const_cast<int&>(x.i) = 3;