Вопрос

Как специализируйте шаблон, определенный в некотором внешнем пространстве имен в теле моего класса?

Бетонный пример с использованием BGL, который не скомпилируется:

class A
{
  namespace boost
  {
    template <class ValueType>
    struct container_gen<SomeSelectorS, ValueType>
    {
      typedef std::multiset<ValueType,MyClass<ValueType> > type;
    };
  }
}

Если кто-то перемещает специализацию Container_gen из класса A, все отлично работает. Конкретная проблема заключается в том, что я не знаю, как ссылаться на то, как ссылаться на пространство имен «Boost» из класса A.

Это было полезно?

Решение

Вы не можете создавать пространства имен внутри классов, и вы не можете специализировать шаблон в области пространства имен в классе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top