偶発的なマクロ置換とは何ですか?偶発的なマクロ置換とは何ですか?
Vera++ C++のリンターでは、T016は述べルール:
呼び出しがminにして最大の機能は 偶発マクロ置換から保護されなければなりません。
x = max(y, z); // wrong, vulnerable to accidental macro substitution x = (max)(y, z); // OK x = max BOOST_PREVENT_MACRO_SUBSTITUTION (y, z); // OK
なぜこれが良いルールであり、このルールを必要とminとmax関数についてとても特別な何ですか?
+1。私が最初に質問したとは全く関係がありませんでした。私が思い出したように、minとmaxの他にもいくつかのものがあります。 – WhozCraig
BOOST_PREVENT_MACRO_SUBSTITUTIONは単に "#define BOOST_PREVENT_MACRO_SUBSTITUTION"です(値は定義されていません)。彼らはマクロのわかりやすい名前を選ぶだけで読めません。 –
'#define NOMINMAX'も同様に役立ちます。 – chris