パフォーマンスが重要なインライン関数がありinline T func(T a, T b, int p)
ます。pがゼロであることがわかっている場合は、かなり最適化できます。ただし、「if」を使用して他のすべてのケースにペナルティを課すことはできません。私が欲しいのは、コンパイル時にpがゼロであることを知っているだけの関数を最適化することです。テンプレートマジックを使用して、それを行うためのクリーンな方法はありますか?
編集
コードが非常に低レベルであるため、別の名前の関数/互換性のないオーバーロードを使用することはできません(それを正しく表現する方法がわかりません)。別の/将来のプロセッサでさまざまな最適化の機会が利用できる可能性が非常に高いです。したがって、これらすべての低レベルのものを1つの関数シグネチャに限定することで、コードを再コンパイルするだけで、あらゆるタイプの最適化を使用できます。