Специализация шаблона внутри пространства имен класса
-
28-09-2019 - |
Вопрос
Как специализируйте шаблон, определенный в некотором внешнем пространстве имен в теле моего класса?
Бетонный пример с использованием 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.
Решение
Вы не можете создавать пространства имен внутри классов, и вы не можете специализировать шаблон в области пространства имен в классе.
Не связан с StackOverflow