//cannot declare operator<<(...) here:
//forward declarations:
class External;
template<class T, class Y>
class External::Internal;
template<class T, class Y>
std::ostream& operator<<(std::ostream& out, const External::Internal<T,Y>&);
class External
{
template<class T, class Y>
class Internal
{};
Internal data_;
void print() {
/*out is a std::ostream*/
out << data_;
}
};
template<class T, class Y>
std::ostream& operator<<(std::ostream& out, const External::Internal<T,Y>&)
{ }
のための演算子を<<宣言するためにはどうすればInternal
ためoperator<<
を実装したいんが、私はExternal
からこのオペレータコールを使用しようとする問題がある。この演算子であるときには、この演算子を見ていませんこのクラスの定義の下で宣言され、このクラス定義の上にこの演算子を宣言する方法はないようです。内部クラス
なぜISN」 「内部」は適切に修飾されていますか? –