类命名空间内的模板特化

时间:2010-08-12 16:50:41

标签: c++ namespaces template-specialization information-hiding

如何专门化我的类体中某些外部命名空间中定义的模板?

使用不编译的BGL的具体示例:

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

如果将container_gen的特殊化移出A类,一切都很有效。具体问题是我不知道如何从A类引用“boost”命名空间。

1 个答案:

答案 0 :(得分:5)

您无法在类中创建命名空间,也无法在类中的命名空间范围内专门化模板。