私はここにファンキーな問題があります。私はいくつかの簡単なタイマーでオブジェクトの作成をベンチマークします。私のコードベースは、プロトタイプからより完全なフレームワークへと徐々に移行しています。これには、いくつかのシンプルな構造体を最上位レベル(メインから)で初期化する必要があります。つまり、私はオブジェクトの初期化をベンチマークする方法を見つけることができず、これは重要です。理想的な世界ではメンバーの初期化リストからプレーンボイド関数を呼び出しますか?
、私はの線に沿って何か行うことができます:あなたがアイデアを得る
struct Potato {
Potato()
: benchmark::start()
, some_int(42)
{
/* Some more stuffs */
benchmark::stop();
}
int some_int;
};
を、私は、ベンチマークにメンバー初期化子リストを願っています。誰もがソフトウェア全体でグローバル(静的)なオブジェクトを使ってそうする方法についてヒントを持っていますか?私はconstexpr関数を無駄に試していた。また、単純な関数からオブジェクトコレクションを返すときに、いくつかのコピーコンストラクターの問題(make_tupleから)を取得します。
ご協力ありがとうございます。
ニース!どうも。私はこれも面白いhttp://stackoverflow.com/questions/17375114/c-temporary-variables-in-initilization-listであることがわかりました。両方のミックスは私が信じるトリックを行うべきであり、振る舞いをオフにする何らかの定義が必要です。良い日:) – scx
私的継承も有用かもしれません(継承ベンチマークの場合)。 – Jarod42