Pregunta

¿Cómo especializarse una plantilla definida en algún espacio de nombres externo en el cuerpo de mi clase?

Ejemplo concreto utilizando BGL que no se compila:

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

Si uno se mueve especialización de container_gen fuera de clase A todo funciona muy bien. El problema concreto es que no sé cómo hacer referencia a "reforzar" espacio de nombres de la clase A.

¿Fue útil?

Solución

No se puede crear espacios de nombres dentro de clases, y no se puede especializar una plantilla en un ámbito espacio de nombres dentro de una clase.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top