Kapanış sorusunu çevirmek , orada Test::A
bir 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_cast
static_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);