In I this
puntatore [class.this], il C++ stati standard:Se `this` non è const, perché non posso modificarlo?
Il tipo di
this
in una funzione membro di una classeX
è .
, ovvero this
non è const
. Ma perché è allora che
struct M {
M() { this = new M; }
};
dà
error: invalid lvalue in assignment <-- gcc
'=' : left operand must be l-value <-- VC++
'=' : left operand must be l-value <-- clang++
'=' : left operand must be l-value <-- ICC
(source: some online compiler frontends)
In altre parole, non è this
const
, ma è davvero!
parola chiave "questo" non è una variabile, quindi non possiamo affermare che sia costante o no. –
anche se funzionasse, hai solo costruito un ciclo infinito. –
@vlad_tepesch: o quella o ricorsione infinita (come si può fare in python). Questa non era la domanda, però. –