(std::min()とかで明示してもダメ)
どうやら、minとmaxが Windows.h で 関数定義ではなく #defineで定義されているのが諸悪の根源っぽいです・・・。
回避するには以下
sample.cpp
using namespace std;
# undef max
# undef min
// ここで min(), max() を使う
// 念のためここでは、Windows関係の関数を実行しないこと
# ifndef max
# define max(a,b) (((a) > (b)) ? (a) : (b))
# endif
# ifndef min
# define min(a,b) (((a) < (b)) ? (a) : (b))
# endif
ベタですが、Windows.hによって定義されているmin,maxを一旦定義解除して、やりたい事が終わったら再定義する感じです。