Por que decltype remove const de tipos de retorno para tipos internos?
Como uma regra geral,decltype
preserva constness:
const int ci = 0;
decltype(ci) x; // x is const int
x = 5; // error--x is const
class Gadget{}:
const Gadget makeCG(); // factory
decltype(makeCG()) y1, y2; // y1 and y2 are const Gadgets
y1 = y2; // error--y1 is const
Mas peloconst
tipos de retorno que retornam tipos fundamentais,decltype
parece jogarconst
longe:
const int makeCI(); // factory
decltype(makeCI()) z; // z is NOT const
z = 5; // okay
Porquedecltype
descartar constness neste caso? Quero dizer a questão de duas maneiras:
Obrigado.