2008-10-15 8 views
10

Ich habe Code wie folgt aus:Wie markieren Sie eine Strukturvorlage als Freund?

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

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

Was ist die korrekte Syntax Freundschaft zu der Vorlage zu geben?

Antwort

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

Funktioniert in VS2008 und ermöglicht MyStruct den Zugriff auf die Klasse.

+0

cool! das funktioniert (ich kann noch nicht wählen, werde ich bei der Registrierung) – David

+0

Beachten Sie, dass dies gibt alle Arten von MyStruct Zugang zu IWantToBeFriends, es ist auch möglich, bestimmte Spezialisierungen von MyStruct Zugriff zu gewähren. –

+0

Es funktioniert auch in g ++. –

7

Nach this site, die korrekte Syntax würde

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