Я находился под впечатлением, что все в C ++ должно быть объявлено перед использованием.
На самом деле, я помню, что читал, что Это причина Почему использование AUTO
в типов обратных типов недействительна C ++ 0x без чего-то вроде DECLTYPE
]: Компилятор должен знать заявленный тип до , оценивая функциональный корпус.
Представьте, что мой сюрприз, когда я заметил (после долгого времени), что следующий код на самом деле идеально законно:
[РЕДАКТИРОВАНИЕ: Изменен пример.]
class Foo
{
Foo(int x = y);
static const int y = 5;
};
Итак, теперь я не понимаю: