次の形式の 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ですか?