T
インスタンス化されたものに応じて異なる動作を与えるために、テンプレート パラメーターによってパラメーター化された関数テンプレートT
があります。必要な特定のバリエーションは非常に単純T::foo(some_args)
です。状態が関与しないため、静的関数の呼び出しで十分です。
foo
ただし、それを関数テンプレートの本文に表示したくありません。
T(some_args);
構文上のノイズを避けるために呼び出したいと思います。関数呼び出し演算子()
を静的であると宣言することは不可能だと思います(またはそうですか?)。T
状態がないため、インスタンス固有の変数はありません。
上記が不可能な場合、インライン化/最適化される可能性が高いもの (G++、Clang、ICC)
T::foo(some_args); // foo being a static function
また
T()(some_args); // operator () declared inline
出力を確認するためのアセンブリを知りません。質問は、実際のパフォーマンスよりも学術的/好奇心の観点からのものです。
T()(some_args)
実行時にオブジェクトを本当に割り当てますか? または、通常は最適化されていますか?