Kafa karıştırıcı Şablon hatası
Çınlama bir süre ile oynuyorum, ve sendeledi "" kurtarmak için ipuçları sağlamak gerekiyordu öldü dağıtım) bir şablondan hata. test/SemaTemplate/dependent-template-recover.cpp
Her şeyi kolayca minimal bir örnek için soyunmuş olabilir:
template<typename T, typename U, int N> struct X {
void f(T* t)
{
// expected-error{{use 'template' keyword to treat 'f0' as a dependent template name}}
t->f0<U>();
}
};
Hata iletisini çınlama tarafından bulunmuştur:
tpl.cpp:6:13: error: use 'template' keyword to treat 'f0' as a dependent template name
t->f0<U>();
^
template
1 error generated.
... Ama zor bir zaman bir template anahtar sözcük sözdizimsel olarak doğru kod eklemek gerekiyor anlayışınız var?
CEVAP
03 14.2/4: ISO C
Üye adı sonra ihtisas görünür bir şablon . ya ->nitelikli-kimlik olarak postfix ifade, ya da iç içe-adı-belirtici sonra, ve postfix ifade veya nitelikli-kimliği açıkça şablon parametre (14.6.2), bağlıdırüye şablon adı anahtar kelime şablonu öneki olmalıdır. Yoksa adı olmayan bir şablon adı kabul edilir.
İçinde t->f0<U>(); f0<U> bir şablonu uzmanlaşma üye olan göründükten sonra -> ve açıkça bağlı şablon parametre U, yani üye şablonu uzmanlaşma olmalı öneki template anahtar kelime.
Yani t->template f0<U>() 10 *deÄŸiÅŸtirin.

git - yeni kullanıcı çekme yapmaya ve ...
Dize gelen kafa karıştırıcı çıktı.spli...
Kafa karıştırıcı hata gıt mesajı...
İçinde sonsuz özyineleme gelen kafa ka...
6 - kafa Karıştırıcı linker hata ileti...