SORU
24 EYLÜL 2010, Cuma


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
24 EYLÜL 2010, Cuma


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • andony5589

    andony5589

    7 Aralık 2011
  • ShoSho

    ShoSho

    20 Ocak 2010
  • WiseOwlTutorials

    WiseOwlTutor

    21 EKİM 2011