Нет шаблона класса с именем X в шаблонном классе

При попытке скомпилировать этот (похожий на CRTP) код с GCC 4.6.0:

template<template<class> class T> struct A;

template<class T> 
struct B: A<B<T>::template X> {
    template <class U> struct X { U mem; };
};

B<int> a;

Я получаю сообщение об ошибке "test.cpp: 3: 26: error: нет шаблона класса с именем 'X' в 'struct B '". Почему X кажется невидимым вне определения класса?

6
задан Tom De Caluwé 26 April 2011 в 19:05
поделиться