Сообщение Re[15]: Когда это наконец станет defined behavior? от 04.05.2023 15:20
Изменено 04.05.2023 15:33 rg45
Re[15]: Когда это наконец станет defined behavior?
Здравствуйте, B0FEE664, Вы писали:
R>> Константностью ссылок невозможно доказать константность объекта.
BFE>Можно, так как неконстантная ссылка не может быть автоматически создана на константный объект.
BFE>Но зачем так сложно?
BFE>Вот это, естественно, не скомпилируется:
BFE>
BFE>Чем не доказательство, что x.i — константный подобъект?
По этой логике, следующий фрагмент тоже можно пытаться выдать за доказательство константности:
Ссылка на константный объект! А объект-то нифига не константный. Короче, фигня это все, а не доказательства.
Если тебе так уже приспичило что-то доказвать, то докажи, что пример ниже порождает неопределенное поведение, и обоснуй ссылками на стандарт:
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;Re[15]: Когда это наконец станет defined behavior?
Здравствуйте, B0FEE664, Вы писали:
R>> Константностью ссылок невозможно доказать константность объекта.
BFE>Можно, так как неконстантная ссылка не может быть автоматически создана на константный объект.
BFE>Но зачем так сложно?
BFE>Вот это, естественно, не скомпилируется:
BFE>
BFE>Чем не доказательство, что x.i — константный подобъект?
По этой логике, следующий фрагмент тоже можно пытаться выдать за доказательство константности объекта — это тоже не скомпилируется:
Ссылка на константный объект! А объект-то нифига не константный. Короче, фигня это все, а не доказательства.
Если тебе так уже приспичило что-то доказвать, то докажи, что пример ниже порождает неопределенное поведение, и обоснуй ссылками на стандарт:
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;