問題タブ [inlining]

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.

0 投票する
1 に答える
103 参照

c++ - デバッグ モードの Visual Studio で特定のヘッダーのインライン化を許可する

デバッグ ビルドで特定のヘッダーをインライン化できるビルド設定を設定することはできますか? 別のプロジェクトでテストするシグナル/デリゲートパターンをたくさん使用しています。ブレークポイントに到達したときに、メイン プロジェクトがコール スタックのコールバックのシグナル/デリゲート部分を表示しないようにしたいと考えています。メインプロジェクトを最適化せずに、ヘッダーのみのライブラリで関数をインライン化できるようにすることは可能ですか、またはコールスタックインターフェイスからヘッダーのみのライブラリへの呼び出しをフィルタリングする他の方法はありますか?

0 投票する
1 に答える
80 参照

c - このインライン結果は一般的ですか?

大学の仕事のため、単純な最適化であるインライン化を調査する必要があります。

基本的なコードは次のとおりです。

そして、インライン化されたコードは次のとおりです。

オプション -O0 を使用して gcc でコンパイルすると、結果は基本バージョンで 14.27 秒、インライン化されたバージョンで 4.45 秒です。それは一般的ですか?プログラムを 10 回実行しましたが、結果は常に似ています。どう思いますか?

次に、オプション -O1 を使用してコンパイルすると、結果は両方のバージョンでほぼ同じで、約 1.5 秒なので、gcc が O1 でインライン化を行っていると思います。

ちなみに、gettimeofday は、プログラム自体が使用した時間だけでなく、全体の時間をカウントすることを知っていますが、その関数を具体的に使用する必要があります。

前もって感謝します!

0 投票する
1 に答える
278 参照

c++ - C++: "(static const double 変数) は定数式に使用できません"

classAが持っている:

次にclassB

しかし、コンパイラは私に言い続けます:

'classB::const_var' は定数式には使用できません。

なぜだめですか?面白いことにclassB::const_var、 adoubleから anに変更するintと、エラーはなくなります。

最適化のためにこれらの変数をインライン化しました。浮動小数点を使用しても最適化が妨げられないことを願っています。

Ubuntu 64 ビット環境で GCC 5.4.0 を使用しています。私が Qt4 を使用しているという事実は、それとは何の関係もないと確信しています。

編集:私の最善の回避策は、次のようにすることですclassB:

そして、classA(他のどこでも)const_var_int浮動小数点に割り当てます。エラーを取り除きます。それが目的を破っているのか、それとも他にどんな結果があるのか​​ はわかりません。