C++でポインタまたは参照を返すと、前方宣言を使用して循環依存を簡単に中断することができます。しかし、価値あるものに戻らなければならない場合はどうしますか? 値によって返されるC++の循環依存関係?
は、循環依存関係を壊すためにどのような方法がありますstruct Foo {
Bar bar() {return Bar{*this}; }
};
struct Bar {
Foo foo;
}
以下の簡単な例を考えてみましょうか?宣言を進めようとすると、不完全な戻り値型に関する不平が表示されます。
関数をインラインで定義しないでください。 'struct Bar; struct Foo {Bar bar();};構造体のバー{Foo foo;}; Bar Foo :: Bar(){return Bar {* this};} – immibis