Articles of Plantillas de

C-Style Strings como argumentos de plantilla?

¿Se pueden usar cadenas C-Style como argumentos de plantilla? Lo intenté: template struct X { const char *GetString() const { return str; } }; int main() { X x; cout<<x.GetString(); } Y aunque no tengo quejas sobre la definición de clase, la instanciación produce ‘X’ : invalid expression as a template argument for ‘str’ (VC).

Plantillas anidadas con scope dependiente

¿Qué es el scope dependiente y cuál es el significado de typename en el contexto del siguiente error? $ make g++ -std=gnu++0x main.cpp main.cpp:18:10: error: need ‘typename’ before ‘ptrModel<std::vector >::Type’ because ‘ptrModel<std::vector >’ is a dependent scope make: *** [all] Error 1 /* * main.cpp */ #include #include template struct ptrModel { typedef std::unique_ptr Type; […]

Usos de un encabezado de promoción aritmética de C ++

He estado jugando con un conjunto de plantillas para determinar el tipo de promoción correcto dado dos tipos primitivos en C ++. La idea es que si define una plantilla numérica personalizada, podría usarlos para determinar el tipo de retorno de, por ejemplo, la función operador + en función de la clase transferida a las […]

plantillas: variables de miembro de clase principal no visibles en clase heredada

Tengo los siguientes 4 archivos: arrayListType.h : arrayListType.h y defina clase arrayListType como plantilla arrayListType : Heredado de la clase arrayListType y Declara y define unorderedArrayListType como una plantilla. main1.cpp : Progtwig de prueba para probar la clase main1.cpp unorderedArrayListType . Makefile arrayListType un error de comstackción al acceder a las variables protegidas de arrayListType […]

Plantilla de clase con amigo de clase de plantilla, ¿qué está pasando realmente aquí?

Digamos que estoy creando una clase para un árbol binario, BT , y tengo una clase que describe un elemento del árbol, BE , algo así como template class BE { T *data; BE *l, *r; public: … template friend class BT; }; template class BT { BE *root; public: … private: … }; Esto […]

Deducción de la plantilla para la función basada en su tipo de devolución?

Me gustaría poder usar la deducción de la plantilla para lograr lo siguiente: GCPtr ptr1 = GC::Allocate(); GCPtr ptr2 = GC::Allocate(); en lugar de (lo que tengo actualmente): GCPtr ptr1 = GC::Allocate(); GCPtr ptr2 = GC::Allocate(); Mi función actual Asignar se ve así: class GC { public: template static GCPtr Allocate(); }; ¿Sería esto posible […]

¿Cuál es el procedimiento de pedido parcial en la deducción de plantilla?

Leí sobre el estándar c ++ 11 pero no puedo entender bien el significado de lo siguiente. Por ejemplo, son muy preferidos. Se usan dos conjuntos de tipos para determinar el orden parcial. Para cada una de las plantillas involucradas, está el tipo de función original y el tipo de función transformada. [Nota: la creación […]

En Rails, ¿cómo renderizas JSON usando una vista?

Supongamos que está en su controlador de usuario y quiere obtener una respuesta json para una solicitud de espectáculo, sería bueno si pudiera crear un archivo en sus vistas / usuarios / directorio, llamado show.json y después de mostrar sus usuarios la acción se completa, rinde el archivo. Actualmente necesitas hacer algo como: def show […]

Error “uso no válido de tipo incompleto” con especialización de plantilla parcial

El siguiente código: template struct foo { void bar(); }; template void foo ::bar() { } me da el error invalid use of incomplete type ‘struct foo’ declaration of ‘struct foo’ (Estoy usando gcc.) ¿Está mal mi syntax de especialización parcial? Tenga en cuenta que si elimino el segundo argumento: template struct foo { void […]

Plantilla de función variable con expansión de paquete no en el último parámetro

Me pregunto por qué el siguiente código no se comstack: struct S { template S(T…, int); }; S c{0, 0}; Este código no se puede comstackr tanto con clang como con GCC 4.8. Aquí está el error con clang: test.cpp:7:3: error: no matching constructor for initialization of ‘S’ S c{0, 0}; ^~~~~~~ test.cpp:4:5: note: candidate […]