Estoy buscando una forma en C++ para extraer el tipo de devolución de una función (sin llamarla). Supongo que esto requerirá algo de magia de plantilla.Extraiga el tipo de devolución de una función sin llamarla (¿con plantillas?)
float Foo();
int Bar();
magic_template<Foo>::type var1; // Here 'var1' should be of type 'float'
magic_template<Bar>::type var2; // and 'var2' should be of type 'int'
actualmente estoy investigando cómo podría implementarse magic_template
, pero no han encontrado una solución hasta el momento.
¿Alguna idea?
Los tipos de devolución de función son covariantes, un iceberg que hundirá ese Titanic. –
Hmm sí, esto se ve bien. Para dar un ejemplo a todos, funciona así: boost :: function_traits :: type> :: result_type var1; var1 = 3.14f; Mi único problema ahora es como dijiste, necesito el tipo de función completa para pasar a estas utilidades de refuerzo. –
pauldoo
@nobugz: Realmente no entiendo tu comentario, ¿puedes explicarlo más? –