significado mussolini muerte hijos fascism duce corta caida biografia benito c++ templates c++11 local-class

c++ - mussolini - il duce significado



Plantilla de miembro en clase local (1)

El propósito de esta limitación? Solo una conjetura, pero:

  • puede usar la función de miembro de clase / plantilla de plantilla solo dentro de la función adjunta. Por lo tanto, ya conoce todos los tipos utilizados dentro de la función y, por lo tanto, puede especificar directamente los tipos utilizados (para varios tipos, por supuesto, la variante de plantilla habría ahorrado algo de tipeo).
  • aunque parezca que no, es un trabajo para todos los creadores de compiladores y espacio para errores, por lo que vale la pena el esfuerzo.

Dato curioso: intente utilizar una clase local dentro de una función como un tipo de retorno para una función (c ++ 0x) -lambda declarada en la función: MSVC 2010: error del compilador interno ^^.

Dado el siguiente código:

void f() { class A { template <typename T> void g() {} }; }

g ++ 4.4 (y también g++-4.6 -std=gnu++0x ) se queja: "declaración inválida de plantilla de miembro en clase local".

Aparentemente las clases locales no pueden tener miembros de plantilla. ¿Cuál es el propósito de esta limitación? ¿Se eliminará en C ++ 0x?

Nota: Si hago de la clase local en sí una plantilla, en lugar de darle un miembro de plantilla:

void f() { template <typename T> class A { void g() {} }; }

Me sale "error: una declaración de plantilla no puede aparecer en el alcance del bloque".