Я получил при компиляции следующего кода с помощью G ++ 4.6.2двойного вложенного класс вперед объявление внутри класса шаблона
template <class T>
class A
{
public:
class B
{
public:
class C; //forward declaration
};
class D
{
//using B
};
class B::C // error here
{
//using D
};
//using B::C
};
/* works fine, but required into "A"
template <class T>
class A<T>::B::C
{
public:
};
*/
Как «15:14: слишком мало шаблонных параметров списков: Ошибки» решить проблему без изменения последовательности объявлений?
Что означает 'class B :: C {};' означает? – andre
Если вы не вставляете номера строк, это облегчает нам помощь, так как мы можем скопировать ваш код в файл для тестирования. –
'класс B :: C {...};' означает объявление класса «С» в классе «В». Это нормально, если «А» не является классом шаблонов. – yurial