tipos significado estructuras ejemplos declaracion arreglo anidadas c++ templates c++11 traits

significado - estructuras en c++ pdf



Defina la variable b del mismo tipo que la variable a (4)

¿Es posible declarar una variable var_b del mismo tipo que otra variable, var_a ?

Por ejemplo:

template <class T> void foo(T t) { auto var_a = bar(t); //make var_b of the same type as var_a } F_1 bar(T_1 t) { } F_2 bar(T_2 t) { }


A pesar de la buena respuesta de @TartanLlama, esta es otra forma en que uno puede usar decltype para nombrar realmente el tipo dado:

int f() { return 42; } void g() { // Give the type a name... using my_type = decltype(f()); // ... then use it as already showed up my_type var_a = f(); my_type var_b = var_a; const my_type &var_c = var_b; } int main() { g(); }

Tal vez vale la pena mencionarlo por el bien de la integridad.

No estoy buscando créditos porque es casi el mismo de la respuesta mencionada anteriormente, pero me parece más legible.


Claro, use decltype :

auto var_a = bar(t); decltype(var_a) b;

Puede agregar calificadores cv y referencias a los especificadores de tipo decltype como si fuera cualquier otro tipo:

const decltype(var_a)* b;


En la antigüedad, antes de que llegara c ++ 11, las personas lo manejaban utilizando plantillas puras.

template <class Bar> void foo_impl(Bar var_a) { Bar var_b; //var_b is of the same type as var_a } template <class T> void foo(T t) { foo_impl(bar(t)); } F_1 bar(T_1 t) { } F_2 bar(T_2 t) { }


decltype(var_a) var_b;

Y un Lorem Ipsum para alcanzar el mínimo requerido de 30 caracteres por respuesta.