Escupiendo la pregunta de cierre, "¿cómo convierto un a tipo Test::A
" en lugar de ser rígido sobre el requisito de tener un elenco allí, y respondiendo varios años tarde, esto parece ser una pregunta popular que nadie más parece haber mencionado la alternativa , según el estándar C ++ 11:
5.2.9 Fundición estática
... una expresión e
se puede convertir explícitamente a un tipo T
usando a static_cast
de la forma static_cast<T>(e)
si la declaración
T t(e);
está bien formada, para alguna variable temporal inventada t
(8.5). El efecto de una conversión tan explícita es el mismo que realizar la declaración e inicialización y luego usar la variable temporal como resultado de la conversión.
Por lo tanto, directamente usando el formulario t(e)
también funcionará, y es posible que lo prefiera por pulcritud:
auto result = Test(a);