Il progetto di standard di N4567 suggerisce che un costruttore di default in default è definita come eliminato se-secondo a 12,1, paragrafo 4:Perché un sindacato composto da membri con varianti costanti non ha alcun costruttore predefinito predefinito?
X è un sindacato e tutte dei suoi componenti variante sono di const -qualificato tipo (o matrice dello stesso),
In altre parole, equivale a dire che, se uno dei suoi membri varianti non è const-qualificato, la regola di cui sopra non si applica. La mia domanda è:
- Cosa c'è di così speciale avere tutte i suoi membri const-qualificato (rispetto alla situazione opposta in cui almeno uno di questi non è const qualificato), e in che prospettiva è che profondamente correlato a un costruttore predefinito predefinito?
non lo faccio capire perché un tale costrutto sarebbe inutile. Sarebbe una variante immutabile. – Columbo
@Columbo: In generale, sarebbe preferibile progettare il tipo in modo da non creare immutabilità, quindi utilizzare 'const Foo' per aggiungere immutabilità come e quando si desidera. Ma questa è solo una scelta di design. –