__pragma キーワード…だと…!?

__pragma

なるものを ATL のヘッダーで発見。

#pragma でえぇやないかと言いたいところですが、そのヘッダーではこんな利用方法がされていました。(改行は独自に入れてます)

// VC2003 付属 atldef.h 221行目近辺
#define _ATLCATCH( e )               \
  __pragma(warning(push))            \
  __pragma(warning(disable: 4127))   \
  if( false ) __pragma(warning(pop)) \

#define _ATLCATCHALL()               \
  __pragma(warning(push))            \
  __pragma(warning(disable: 4127))   \
  if( false ) __pragma(warning(pop)) \

…なるほど。 プリプロセッサ後の構文解析時に(?)解釈される pragma って感じですなぁ。 #define に絡めれば、プリプロセス後はいろんな所で自動的に pragma が発動可能と。


上手に利用出来れば、かゆいところに手が届いてウマーかと思いますが、本当にうまくやらないと混乱の元になりそう。(ぉ ^^;