2008-10-15 17 views
10

mam kod jak poniżej:Jak oznaczyć szablon struct jako przyjaciela?

template <typename T, typename U> struct MyStruct { 
    T aType; 
    U anotherType; 
}; 

class IWantToBeFriendsWithMyStruct 
{ 
    friend struct MyStruct; //what is the correct syntax here ? 
}; 

Jaka jest poprawna składnia dać przyjaźń do szablonu?

Odpowiedz

17
class IWantToBeFriendsWithMyStruct 
{ 
    template <typename T, typename U> 
    friend struct MyStruct; 
}; 

Działa w VS2008 i umożliwia MyStruct dostęp do klasy.

+0

Cool! to działa (nie mogę jeszcze głosować, zrobię to po zarejestrowaniu). – David

+0

Pamiętaj, że daje to wszystkie rodzaje dostępu MyStruct do IWantToBeFriends, możliwe jest również przyznanie określonych specjalizacji dostępu MyStruct. –

+0

Działa również w g ++. –

7

Według this site, poprawna składnia byłoby

class IWantToBeFriendsWithMyStruct 
{ 
    template <typename T, typename U> friend struct MyStruct; 
} 
Powiązane problemy