私は、ソケット通信で型パニングを公正に利用するクロスプラットフォーム ライブラリを開発しました。このライブラリはすでに多くのプロジェクトで使用されていますが、その中には私が気付いていないものもあります。
このライブラリを誤って使用すると、危険な未定義の動作が発生する可能性があります。このライブラリが適切に使用されていることをできる限り確認したいと思います。
もちろん、ドキュメンテーションは別として、G++ でこれを行うための最善の方法は、-fstrict_aliasing
and-Wstrict-aliasing
オプションを使用することです。
ソース ファイル レベルでこれらのオプションを適用する GCC の下の方法はありますか?
つまり、次のようなものを書きたいと思います。
MyFancyLib.h
#ifndef MY_FANCY_LIB_H
#define MY_FANCY_LIB_H
#pragma (something that pushes the current compiler options)
#pragma (something to set -fstrict_aliasing and -Wstrict-aliasing)
// ... my stuff ...
#pragma (something to pop the compiler options)
#endif
方法はありますか?