Ik wil het volgende doen:
template <typename T>
struct foo
{
template <typename S>
friend struct foo<S>;
private:
// ...
};
maar mijn compiler (VC8) verslikt zich erin:
error C3857: 'foo<T>': multiple template parameter lists are not allowed
Ik zou graag alle mogelijke instanties van template struct foo
vrienden van foo<T>
willen hebben voor alle T
.
Hoe zorg ik ervoor dat dit werkt?
EDIT: dit
template <typename T>
struct foo
{
template <typename>
friend struct foo;
private:
// ...
};
lijkt te compileren, maar is het juist? Vrienden en sjablonen hebben een zeer onnatuurlijke syntaxis.
Antwoord 1, autoriteit 100%
template<typename> friend class foo
dit maakt echter alle sjablonen vrienden van elkaar.
Maar ik denk dat dit is wat je wilt?