問題タブ [inline]
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# - メソッドが C# でインライン化されるかどうかを判断する方法はありますか
operator*
forpoint3
とfloat
forをオーバーライドし、次のように演算子を使用したfloat
とします。point3
演算子メソッドが最終的にインライン化されるかどうかを知ることができますか?
objective-c - doxygen は Objective-C のメソッド引数のインライン コメントをサポートしていますか?
以前は C++ に doxygen ロットを使用していましたが、関数やメソッドの引数を///<
, またはバリエーションを使用してインラインでドキュメント化する機能が本当に気に入っています。逆に、インライン スタイルを使用していないときにコメントで引数を繰り返さなければならないのは本当に嫌いです (ほとんどのオーバー コード ドキュメント システムのみがサポートされているため)。
そのため、最近、Objective-C コードで doxygen をセットアップしましたが、インライン引数のドキュメント化が機能していないようです!
@param を使用したアウト オブ ライン ドキュメントは機能しているようです。そのため、Objective-C メソッドのインライン構文はサポートされていないとしか言えません。これは本当に残念です。
誰か違いを知っていますか?これを機能させたいです。
c - 「インライン」が無効になるのはいつですか? (C)
inline
でキーワードを使用するのが好きでC
、大きな関数をヘッダーに入れる人もいます。これが効果がないと考えるのはいつですか?珍しいので、時々迷惑だと思います。
私の原則は、inline
非常に頻繁にアクセスされる小さな関数、または実際の型チェックを行うために使用する必要があるということです。inline
とにかく、私の好みは私を導きますが、大きな関数にはあまり役に立たない理由を最もよく説明する方法がわかりません。
この質問では、正しいことを推測する際にコンパイラーがより良い仕事をすることができると人々は示唆しています。それは私の推測でもありました。この引数を使用しようとすると、さまざまなオブジェクトからの関数では機能しないという回答が寄せられました。まあ、わかりません(たとえば、GCCを使用しています)。
回答ありがとうございます。
c++ - C ++のリンケージ(外部/内部)について説明しますか?
C ++のリンケージ(外部/内部)について説明しますか?関数、定数、インライン関数、テンプレート関数、クラス、およびテンプレートクラスのリンケージはどのように異なりますか
c# - C# コンパイラがメソッド呼び出しをインライン化したかどうかを確認できますか?
ピクセルごとの衝突チェックを行う XNA ゲームを作成しています。これをチェックするループは、int とビットごとの ORing をシフトすることによってチェックしますが、一般的に読みにくく、理解するのが困難です。
private bool IsTransparent(int pixelColorValue)
ループを読みやすくするためにプライベート メソッドを追加したいのですが、これはパフォーマンスに非常に敏感なコードであるため、メソッド呼び出しのオーバーヘッドは望ましくありません。
コンパイラにこの呼び出しを強制的にインライン化する方法はありますか?それとも、コンパイラがこの最適化を行うことを願っていますか?
これを強制する方法がない場合、逆アセンブリを読む以外に、メソッドがインライン化されているかどうかを確認する方法はありますか? メソッドがインライン化されていて、他の呼び出し元が存在しない場合、メソッドはリフレクションに表示されますか?
編集:強制できないので、検出できますか?
c# - インライン静的イベントの削除
一時的にアタッチしている静的メソッドに静的イベントがあります。これは、メモリ内にぶら下がったり、2 回呼び出した場合に 2 つのイベント ハンドラーを起動したりする状況に陥りたくないためです。
これらが静的であるべきかどうかについて私はほとんど何も言えません。
最初はこんな感じでやってました
これは正常に機能していますが、イベントをインラインで処理し、メソッド内の別のイベントと一貫性を持たせ、関数にローカルで他のイベントで使用されるキャンセル ブール値を設定したいと考えています。
私の質問は、シナリオ 2 で、静的イベントをクリーンアップして切り離すにはどうすればよいですか?
c++ - デフォルトのインライン関数について C++ 標準を無視するコンパイラはありますか?
C++ ISO 標準は、次のように述べています。
このルールを無視するコンパイラはありますか?
(インラインをinlineDと間違えないでください-私の質問は、コンパイラがあるかどうかです。それは、インラインの提案をそこに入れません)
c++ - デフォルトのインライン関数について C++ 標準を無視するコンパイラはありますか?
C++ ISO 標準は、「クラス定義内で定義された関数はインライン関数です」と述べています。*
このルールを無視するコンパイラを知っていますか?
その「インライン提案」をそこに置かないコンパイラについて知っていますか?
(インラインについての理論を繰り返さないでください。私はそれを認識しています-実用的な答えが必要です)
c++ - C ++でインライン化可能な相互抽象化をコーディングする方法は?
最初の例:
この例では、MyHashingSolutionをStateクラスに渡して、StateがHashingSolutionのメソッドにアクセスできるようにすることができますが、HashingSolutionはGetStateを呼び出すことができません。これを回避することは可能ですか?
これは最も深いループにあります。ここでの仮想関数は、パフォーマンスを25%以上低下させます。インライン化は私にとって非常に重要です。
c++ - C++: Inline functions and link time code generation
Up till a while a ago my code base was very close to #include
hell. Every time I changed an even mildly important .h file practically all the files got recompiled.
The main reason for such high header dependency was that I have many small functions that need to be inline and I was under the impression that for inline to work they need to be in the same translation unit as the calling code, so they need to be in the header. For the inline function to even compile other headers need to be included in the header as well, ad infimum.
Enter link-time code generation (in Visual Studio). One of the main stated advantages of this is that now inline function can cross translation units.
But I'm still iffy. How can I really be sure that these functions really get inlined? I realize that the compiler can basically do whatever the hell it wants no matter where I define the function.
Is there a way to check what gets inlined?