C++相談室 part60
■ このスレッドは過去ログ倉庫に格納されています
0458デフォルトの名無しさん
2008/02/13(水) 21:45:04うい。例えば
#define STATIC_ASSERT(expr) ((int(*)[(expr) ? 1 : -1])0)
こういうタイプの静的アサーションマクロがあったとすると、
int (*p)[1] = STATIC_ASSERT(true);
みたいにしてその値を使えてしまう。
そこで、
#define STATIC_ASSERT(expr) ((void)(int(*)[(expr) ? 1 : -1])0)
と void にキャストすると、そういうことができなくなる。
■ このスレッドは過去ログ倉庫に格納されています