次の形式の Blitz++ をコンパイルするときに表示される警告をクリーンアップしようとしています。
/opt/local/include/blitz/tinyvec2.h:261:35: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
/opt/local/include/blitz/tinyvec2.h:264:43: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
/opt/local/include/blitz/tinyvec2.h:267:40: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
<<etc.>>
TinyVector
このような(クラスの)メンバー関数から
T_numtype * restrict data() // line 261
{ return data_; } // data is a member that is an array of data values
const T_numtype * restrict data() const // line 264
{ return data_; }
私が知る限り、restrict
キーワードが原因で警告が表示されます。注:restrict
を__restrict__
(g++ が理解する) に置き換えるマクロがあります。
キーワードを削除することで、警告を取り除くことができます。ただし、これは高性能の数値ライブラリであると想定されているため、restrict
キーワードが許可するコンパイラの最適化を失いたくありません。
restrict
を完全に削除せずにこれらの警告を抑制するにはどうすればよい-Wall
ですか?