2012-08-08 5 views
5

SSE組み込み関数用のラッパークラスを2つ作成しています。ほとんどの場合、型安全なジオメトリ操作を取得するだけでなく、2つの便利な関数を追加することもあります。すべての私の関数と演算子はインラインです。理論的には、それらはすべて未加工のSSEアセンブリ(関数呼び出しなし)に直接コンパイルされ、私の電子はXMMレジスタから離れることはありません。SSEデータを関数/演算子に渡す方法はありますか?

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

私は引数を変更しないので、値渡しとconst参照渡しの選択がほとんどです。私は良いコンパイラが両方のスタイルを同じコードで最適化すると仮定します。しかし、私は確かにそのことを知らない。その地域でより多くの経験を積んだ人がベストプラクティスを説明できるでしょうか?

ありがとうございます!

答えて

4

ほとんどのコンパイラで問題ありませんが、コードがVisual Studioでコンパイルされるようにするには、Visual Studioコンパイラが脳死になり、関数がインラインであっても不要なABI制限が適用されるため、const参照を使用します。

+1

ありがとうございます - 私は現時点ではGCCのみですが、互換性があるのは良いことです。 Constはそれを参照しています。乾杯! –

関連する問題