次のように宣言されたメンバー関数がある場合:
double* restrict data(){
return m_data; // array member variable
}
restrict キーワードで何かできますか?
どうやら、g++ (x86 アーキテクチャ) ではできませんが、このタイプの構築が理にかなっていて、最適化されたマシンコード生成を可能にする他のコンパイラ/アーキテクチャはありますか?
Blitz ライブラリ (Blitz++) にはこのように宣言された多数の関数があり、実際に何かを行わない限り、誰かが入って restrict キーワードを追加しても意味がないので、私が質問しています。したがって、restrict
(コンパイラの警告を取り除くために) を削除する前に、コードをどのように悪用しているかを知りたいと思います。