5

私はSSE組み込み関数のラッパークラスをいくつか書いています-主にタイプセーフなジオメトリ操作を取得するためですが、いくつかの便利な関数を追加するためにもあります。私の関数と演算子はすべてインラインです。理論的には、それらはすべて生のSSEアセンブリに直接コンパイルされ(関数呼び出しはありません)、私の電子はXMMレジスタを離れることはありません。

この結果を確実にするために、SSEクラスを引数として渡すにはどうすればよいですか?

私は引数を変更しないので、選択は主に値による受け渡しかconst参照による受け渡しのどちらかです。優れたコンパイラは、同じコードで両方のスタイルを最適化すると思います。しかし、私はそれを確かに知りません。この分野でより多くの経験を持つ人がベストプラクティスについて説明できますか?

前もって感謝します!

4

1 に答える 1

4

ほとんどのコンパイラではどちらでも問題ありませんが、コードをVisual Studioでコンパイルする場合は、const参照を使用してください。これは、Visual Studioコンパイラがやや頭がおかしく、関数がインラインの場合でも不要なABI制限を適用するためです。

于 2012-08-08T21:39:58.803 に答える