int max

winではないナニカの開発中もvisual studioを使っていたりするわけですが、
ある部分から急にコード補完ができなくなったり、
変数のツールチップが「int max」としか出なくなったりする現象に
頭を悩ませていました。


んで、色々見ていたら現象が起こる部分と起こらない部分の境目を発見。
何が問題なんだろう?とか色々探った結果、max という名前に問題がある事が判明。
int get_hoge( int max ); みたいなのを宣言していて使っていたのですが、
どうやら windef.h あたりに
#define max(a,b) (((a) > (b)) ? (a) : (b))
とかいうマクロがあるようです。
そこらへんで間違って展開しようとしているのかまではわかりませんでしたが、
int get_hoge( int max ); の人を int get_hoge( int nMax ); とかに
してやると、間違われなくなりました。
とりあえずそれで回避。なんかいやんですが。