38
Ich mag würde folgendes tun:Template Freund
template <typename T>
struct foo
{
template <typename S>
friend struct foo<S>;
private:
// ...
};
aber mein Compiler (VC8) Drosseln auf sie:
error C3857: 'foo<T>': multiple template parameter lists are not allowed
Ich mag würde alle möglichen Umschreibungen template struct foo
Freunde haben von foo<T>
für alle T
.
Wie mache ich das?
EDIT: Diese
template <typename T>
struct foo
{
template <typename>
friend struct foo;
private:
// ...
};
scheint, zu kompilieren, aber ist es richtig? Freunde und Vorlagen haben eine sehr unnatürliche Syntax.
danke das funktioniert. Ja, es ist was ich will. –
können Sie den Referenzabschnitt zum Standard posten, wo er definiert ist? –
In C++ 03 in 14.5.3.3 und 14.5.3.4, In C++ 11 müssen Sie den Abschnitt "Friends" in 14.5.4 lesen –