Kapanış sorusunu çevirmek , orada Test::Abir oyuncuya sahip olma gereksinimi hakkında katı olmak yerine "nasıl bir tipe dönüştürebilirim " ve birkaç yıl geç cevap vermek, bu kimsenin alternatiften bahsetmediği popüler bir soru gibi görünüyor , C ++ 11 standardına göre:
5.2.9 Statik döküm
... bir ifade e, icat edilen bazı geçici değişkenler (8.5) için iyi biçimlendirilmişse, formdan birisini
T
kullanarak bir türe açık bir şekilde dönüştürülebilir . Bu tür açık bir dönüşümün etkisi, bildirimi ve başlatmayı gerçekleştirmek ve daha sonra dönüşümün sonucu olarak geçici değişkeni kullanmakla aynıdır.static_caststatic_cast<T>(e)T t(e);t
Bu nedenle, formu doğrudan kullanmak t(e)da işe yarayacaktır ve düzgünlük için tercih edebilirsiniz:
auto result = Test(a);