読者です 読者をやめる 読者になる 読者になる

ゆとりーなの日記

日記的な事を書いて行くと思はれる

お友達って何

そんな状況があるのかは知りませんが、ふと前からあるクラスにはメンバを全部公開するけど他には全く公開しないクラス的なものを作りたくて、テンプレートとfriendを使えばいけるかなとか思ってやってみたんですが、コンパイラ毎に通る構文が違うんですね。

template <typename T>
class atama : private hage {
  friend T; // VCのみコンパイルが通る
  friend class T; // VCもg++もコンパイルが通らない
  friend class T::type; // g++のみコンパイルが通る
};

規格的にはどれが正しいんでしょうか。因みにVCは10、g++は確か4.12だったと記憶しています。