問題タブ [cyclic-reference]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 循環依存 - 相互参照する構造体と関数ポインタ
構造体と関数ポインタ間の循環依存が原因で、次のプログラムをコンパイルできません。
// fnPtr.cpp : コンソール アプリケーションのエントリ ポイントを定義します。///
次のエラーが表示されます。
エラー 7 エラー C2039: 'sFunPtr': 'gInStruct' のメンバーではありません c:\users\saurabh17g\documents\visual studio 2010\projects\fnptr\fnptr\fnptr.cpp 31
エラー 3 エラー C2062: タイプ 'int' 予期しない c:\users\saurabh17g\documents\visual studio 2010\projects\fnptr\fnptr\fnptr.cpp 7
エラー 1 エラー C2065: 'gStruct': 宣言されていない識別子 c:\users\saurabh17g\documents\visual studio 2010\projects\fnptr\fnptr\fnptr.cpp 7
エラー 2 エラー C2065: 'pStr': 宣言されていない識別子 c:\users\saurabh17g\documents\visual studio 2010\projects\fnptr\fnptr\fnptr.cpp 7
エラー 4 エラー C2146: 構文エラー: ';' がありません 識別子「sFunPtr」の前 c:\users\saurabh17g\documents\visual studio 2010\projects\fnptr\fnptr\fnptr.cpp 10
エラー 5 エラー C4430: 型指定子がありません - int と見なされます。注: C++ は default-int c:\users\saurabh17g\documents\visual studio 2010\projects\fnptr\fnptr\fnptr.cpp 10 をサポートしていません。
エラー 6 エラー C4430: 型指定子がありません - int と見なされます。注: C++ は default-int c:\users\saurabh17g\documents\visual studio 2010\projects\fnptr\fnptr\fnptr.cpp 10 をサポートしていません。
最初の typedef をコメントし、2 番目の typedef のコメントを外すと、
エラー 4 エラー C2039: 'sFunPtr': 'gInStruct' のメンバーではありません c:\users\saurabh17g\documents\visual studio 2010\projects\fnptr\fnptr\fnptr.cpp 31
エラー 1 エラー C2146: 構文エラー: ';' がありません 識別子「sFunPtr」の前 c:\users\saurabh17g\documents\visual studio 2010\projects\fnptr\fnptr\fnptr.cpp 10
エラー 2 エラー C4430: 型指定子がありません - int と見なされます。注: C++ は default-int c:\users\saurabh17g\documents\visual studio 2010\projects\fnptr\fnptr\fnptr.cpp 10 をサポートしていません。
エラー 3 エラー C4430: 型指定子がありません - int と見なされます。注: C++ は default-int c:\users\saurabh17g\documents\visual studio 2010\projects\fnptr\fnptr\fnptr.cpp 10 をサポートしていません。
考えられる答えを教えてください。前もって感謝します、 サウラブ
c++ - サイクリックテンプレート
テンプレートクラスAが次のように定義されているとします。
テンプレートクラスBが次のように定義されているとします。
理想的には、これらのクラスは、インライン実装を使用して個別のヘッダーで定義されます。ただし、これにより循環包含の問題が発生します。1つの解決策は、テンプレート化されたクラスの実装をcppファイルに入れることです。ただし、これには特殊なテンプレートのインスタンス化が必要になります。
クラスの実装をインラインに保ち、循環的な包含依存を回避する方法はありますか?可能であれば、ポインタの使用は避けたいと思います。
ありがとう、
サム
c++ - 循環コンストラクター
構造体AとBが次のように定義されたシングルトン構造体であるとします。
コードがコンパイルされるようにファイル構造が編成されているとします。
初めてA::shared_aが呼び出されると、Aの共有インスタンスが構築されます。Aの共有インスタンスのコンストラクターはB :: shared_bを呼び出し、Bの共有インスタンスを構築します。次に、共有のコンストラクターBのインスタンスはA::shared_aを呼び出します。ただし、Aの共有インスタンスはコンストラクターを完了していません。したがって、これらのコンストラクターは無限にループします。
このようなループを防ぐために、クラスAとクラスBをマージすることもできますが、そうすることは避けたいと思います。よりエレガントな解決策はありますか?
ありがとう、
サム
inversion-of-control - Ninject 3.0 の従来のバインディングを使用して装飾するときの循環依存エラー
以下のサンプルコードをご覧ください。WhenInjectedInto
メソッドを使用してバインドするときに発生している問題を示すための単純化されたシナリオです。これは以前のバージョンの ninject で常に機能していました。しかし、この 3.0 へのアップグレードでは、どこに問題があるのかわかりません。WhenInjectedInto
メソッドが適切に適用された場合、循環依存例外が発生するはずがありません (つまり、デコレータがそれ自体に注入されています) 。
また、これは非常に単純化されたシナリオであるため、クラスとインターフェイスは規則に従っていることに注意してください。したがって、このコード サンプルでは、デフォルトの規則を使用して ioc コードを大幅に削減して解決策を達成できる可能性がありますが、実際のシナリオについては念頭に置いてください。クラスとインターフェースが規則に流暢に従う必要があります。
maven - テストのみをコンパイルするときの Maven の循環依存関係 - 簡単に解決する方法は?
Maven で使用する古いプロジェクトの最新化に取り組んでいます。このプロジェクトは非常に大規模で、約 30 個のモジュールが含まれています。
メインのソース コードに関する限り、すべてをコンパイルして依存関係を正しく確立することができました。実際に動作し、Maven の tomcat プラグインを介して実行できます。
問題は、テストのコンパイルにあります。
残念ながら、この会社は、メインのソース コードに適用したのと同じ依存関係の制限をテスト コードに適用していませんでした。
たとえば、メイン ソース コードで C は B に依存し、B は A に依存します。ただし、A は C に依存してテストを実行します。明らかに、Maven は不平を言い、循環依存があると言うでしょう。
コードを完全に修正する以外に (悲しいことに、このプロジェクトでは発生しません。数千万行になります)、Maven に「最初にすべてのメイン ソース コードをコンパイルしてから、すべてのソース コードをコンパイルしてください」と伝える方法はありますか?その後のテストコード」?または、この問題を回避する他の解決策はありますか?
ありがとう
python - Python でこの種の循環依存関係を解決する方法
以下に示すような状況に遭遇しました。各クラスは他のクラスを必要とし、循環依存関係を作成します。ctypes を使用していくつかの C コードをラップしているときに、このタイプの状況に遭遇しました。このトピックに関する投稿はすでにたくさんありますが、役に立たなかったので、例が必要です。これを解決するための考え/例は役に立ちます。
maven - Mavenは、マルチモジュールプロジェクトに循環参照があると言いますが、理由がわかりません
次のようなマルチモジュール プロジェクトがあります。
- モジュール1
- pom.xml
- モジュール2
- pom.xml
- pom.xml
module2 の pom.xml は、module1 に依存しています。
mvn clean compile を実行すると、次のエラーが発生します。
リアクタ内のプロジェクトには循環参照が含まれています。
module1 の依存関係は次のとおりです。
循環参照があると言う理由がわかりません。module1 で mvn dependency:tree を実行しても、次のようになります。
module1 には module2 への参照がないように見えます。では、循環参照はどこから来ているのでしょうか?
編集:デバッグをオンにしたログは次のとおりです。
python - from package import module構文を使用すると、Pythonの循環インポートが失敗する
重複の可能性:
Pythonでの巡回加群の依存関係と相対的なインポート
Pythonでの循環インポートの次の例を考えてみましょう。
main.py:
pkg / __ init.py__:
pkg / foo.py:
pkg / bar.py:
main.pyを実行すると、例外が発生します。
bar.pyを次のように変更します。
例が機能します。
なぜこれが起こるのですか?* importpackage.module"と"frompackage import module "は同等ではありませんか(後者の余分な名前バインディングを除く)?
c++ - shared_ptrおよび循環参照
私はの循環参照を試していて、boost::shared_ptr
次のサンプルを考案しました。
どの出力
で述べた循環参照を誤解したのboost::shared_ptr
でしょうか?p1
なぜなら、アフターコメント1)
とへの間接参照については、異なる出力思考を期待していたから2)
です。したがって、このコードは必要ありませんboost::weak_ptr
!weak_ptr
では、 sが必要となる循環参照は何ですか?
前もって感謝します。
core-data - Core Data との関係ループ
Core Data に関して概念的な問題がありました。
私は OBJ と呼ばれるエンティティを持っていますが、これには OBJ エンティティとの関係があります。"An error occured."
モデルをテストするときのように、非常に雄弁なメッセージを受け取ります。
各 OBJ エンティティに対して、別の OBJ エンティティに関連付けられた 1 つ以上の ACTION を定義したいと考えています。私の間違いはループから来ていると思いますが、よくわかりません。
最初に、逆の関係を定義しました (ドキュメントのアドバイスに従って、関係には常に逆の関係が必要です)。
OBJ は常に自分自身を参照するため、うまくいきません。したがって、私は関係を切り離しました。ACTION は OBJ を指し、OBJ は複数の ACTION を指しますが、相反関係はありません。エラーメッセージ。
私の基本的な考え方は、特定の OBJ に関連付けられた各 ACTION は、別の OBJ のステータスが許せば実行できるというものです。
これを構築してMVCの一貫性を保つには? 基本的な考え方は単純に見えますが、そうではないのは彼の業績です。Core Data のモデリングが間違っているのでしょうか? コントローラ レベルでミスを犯すことはありますか? インターフェース?このレベルでは、コードを 1 行も書いていないことに注意してください。
ありがとうございました!