class Namespace::Class;
Чому я повинен це робити ?:
namespace Namespace {
class Class;
}
Використовуючи VC ++ 8.0, компілятор видає:
помилка C2653: 'Простір імен': це не ім’я класу чи простору імен
Я припускаю, що проблема тут полягає в тому, що компілятор не може сказати, чи Namespace
це клас чи простір імен? Але чому це має значення, оскільки це лише пряма декларація?
Чи є інший спосіб переадресувати оголошення класу, визначеного в якомусь просторі імен? Синтаксис вище відчуває, що я "знову відкриваю" простір імен і розширюю його визначення. Що робити, якщо Class
насправді не було визначено Namespace
? Чи призведе це до помилки в якийсь момент?
A::B
A
Namespace
це клас чи простір імен. Просто ніде не наближайтесь до натяку на можливість можливого початку мовної вогню над синтаксисом.