class Namespace::Class;
Зачем мне это делать?
namespace Namespace {
class Class;
}
Используя VC ++ 8.0, компилятор выдает:
ошибка C2653: «Пространство имен»: это не имя класса или пространства имен
Я предполагаю, что проблема здесь в том, что компилятор не может определить, Namespace
является ли класс или пространство имен? Но почему это важно, так как это всего лишь предварительное заявление?
Есть ли другой способ объявить вперед класс, определенный в некотором пространстве имен? Синтаксис выше выглядит так, будто я «заново открываю» пространство имен и расширяю его определение. Что если в Class
действительности не определены Namespace
? Не приведет ли это к ошибке в какой-то момент?
A::B
A
Namespace
это класс или пространство имен. Только не приближайтесь к намеку о возможности предположительно начать языковую войну за синтаксис.