Girando fora a questão de encerramento, "como faço para converter um para digitar Test::A" ao invés de ser rígida sobre o requisito de ter um elenco de lá, e respondendo a vários anos de atraso apenas isso parece ser uma questão que ninguém popular, mais parece ter mencionado a alternativa , pelo padrão C ++ 11:
5.2.9 Molde estático
... uma expressão epode ser explicitamente convertida em um tipo T
usando um static_castdo formulário static_cast<T>(e)se a declaração
T t(e);estiver bem formada, para alguma variável temporária inventada t(8.5). O efeito de uma conversão explícita é o mesmo que executar a declaração e a inicialização e, em seguida, usar a variável temporária como resultado da conversão.
Portanto, o uso direto do formulário t(e)também funcionará, e você pode preferir o detalhe:
auto result = Test(a);