7
sağlayan belirli şartlarda bir sınıfın bir yapıcısı etkinleştirebilirsiniz nasıl. Sadece yazamaz Neden:şartlı Burada yapıcı
başka işlevi ancak yapıcıstruct Foo
{
template<class T>
Foo(boost::enable_if<is_arithmetic<T>, T>::type* = NULL)
{}
};
Doğru anladıysam sorun, şablon argüman kesintisinin başarılı olduğundan emin olmaktır. Bu ister açık bir şekilde türüyle örneklenimin yapılır - foo.Method veya Yöntem indirimi sağlayan bir argüman olması için - şablon geçersiz Yöntemi (U * ptr, artırmak :: enable_if > :: türü * = NULL) {} –
@MK: Evet, çoğu üye işleviyle seçeneğiniz vardır. Yapıcılarla, şablon argümanlarını açıkça belirtmenin bir yolu yoktur. –
@MK: Diğer işlevlerde 'enable_if', şablon argümanı kesintisini bozmamak için dönüş değerine iyi gider. Ne yazık ki, müteahhitlerin bir dönüş türü yok. OTOH, kimse yapıcı işlevinin adresini alamaz ve bu nedenle hiç kimse bu "gizli" ek argümandan rahatsız olmaz. – UncleBens