Почему decltype удаляет const из возвращаемых типов для встроенных типов?
Как общее правило,decltype
сохраняет постоянство:
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
Но дляconst
возвращаемые типы, которые возвращают фундаментальные типы,decltype
кажется, броситьconst
далеко:
const int makeCI(); // factory
decltype(makeCI()) z; // z is NOT const
z = 5; // okay
Почемуdecltype
сбросить константность в этом случае? Я имею в виду вопрос двумя способами:
Благодарю.