0
これはC++言語の限界を知るための質問です。別のクラスのtypedefを循環的に使用する
ほとんどの循環クラスの依存関係は、前方宣言とポインタで解決できます。
しかし、私は、これは何とか解決することができるかどうか疑問:
人間の目でそれを解析struct Y; // forward declaring Y does not solve the problem
struct X {
using T = int;
using Other = Y::T; //error: incomplete type 'Y' named in nested name specifier
};
struct Y {
using T = float;
using Other = X::T;
};
、あなたはY::T
が何かに依存しないため、このコードでX::Other
は自明float
として理解することができることを簡単に確認することができます。しかし、私はtypename Y::T = float;
のようなもの(しかし、C++の未知の暗いコーナーが常にある)や、上記のtypedefを許すメソッドやイディオムなど、 "typedefを宣言する"ことができる構文は知らない。
これを解決する方法はありますか? (具体的には、各クラスは他のクラスの型定義を使用しています - クラス外の型定義を移動することなく)
これは私が考えていたものです。他の解決策が存在するかどうか不思議です。 – bolov