Защо е това недефинирано поведение?
struct s
{
const int id; // <-- const member
s(int id):
id(id)
{}
s& operator =(const s& m) {
return *new(this) s(m); // <-- undefined behavior?
}
};
(Цитат от стандарта би бил хубав).
Този въпрос произтича от този отговор.
const int id;
казва, че стойността наid
никога няма да се промени. И после го сменяш? - person Bo Persson   schedule 24.11.2017const
се отнася само за живота на обекта. - person Passer By   schedule 24.11.2017const
, защото не знам дали timsong-cpp.github.io/cppwp/basic.life#10 изглежда се прилага. - person Rakete1111   schedule 24.11.2017const
обекти, а не обект сconst
членове, нали? - person YSC   schedule 24.11.2017[basic.life]/9
, изрично се казва, че е добре? - person YSC   schedule 24.11.2017