Şablon oluşturucuyu açıkça başlatmayı (başlatıcı listesinde) nasıl anlatabilir misiniz? örneğin :C++ açık şablon yapıcısını çağırır
struct T {
template<class> T();
};
struct U {
U() : t<void>() {} //does not work
T t;
};
sayesinde
Bu mümkün değil
thank you.no Çok önemli bir şey, ben bu çalışabilirsiniz boost tanımlanan oluyor – Anycorn
@litb: Açıkça T: T()? –
@JosephGarvin 'T() 'nin, parantezden önce birşeye sahip olmasıyla çalıştığından şüpheleniyorum,' Type()' geçici bir nesne oluşturur. Bu, parens öncesi bir işlevin olduğu T :: T() 'ile uyumsuzdur. Bunun anlamı adlandırılmış işlevi çağırmaktır. Ama doğrudan bir kurucu çağırmak hiçbir anlam ifade etmiyor, en azından çalışmasını ve beklenen şeyi yapmasını sağlamak için ek bir yazı gerektiriyor. –