Сегодня я случайно положил const
в начале моего конструктора (ошибка копирования пасты) и скомпилировал его. Я только пробовал это в Visual Studio 2008, который является pre C++ 11. Имеет ли этот синтаксис какой-либо смысл? Это ранние попытки Microsoft на constexpr
?Есть ли такая вещь, как конструктор const?
class foo
{
public:
const foo(int i){}
};
foo f(1);
Интересно, какое влияние на него имеет, если таковое имеется, в VC++ 08. Это может быть просто проигнорировано? – user2864740
Мне удалось вызвать неконстантные функции в теле конструктора, поэтому, если он имеет эффект, он не ограничивает того, что вызывается в конструкторе. – cppguy
@cppguy это не так удивительно, так как ctor не объявляется как 'foo (int i) const'. Интересно, работает ли последний в VS (с изменяемой переменной-членом), хотя ctors не может быть cv-квалифицированным :) – vsoftco