プログラミング言語C++であれこれやっている最中、
最大値、最小値を取得したくなり、std::numeric_limitsを使おうとしたら
マクロのmax(a,b)が呼び出されてコンパイルできなかったときのお話
std::numeric_limitsを使うと、値の最大値、最小値を楽々もとめることができます。
いざ、最大値を求めようとstd::numeric_limits<T>::max()を使ってみると
マクロとして定義されているmax(a,b)が呼び出されてしまう。。。
うまくコンパイラできなかったため諦めていたのですが、
そういえばこんな感じの書き方ができたなーと試してみたらうまくいきました。
修正前:std::numeric_limits<int>::max();
修正後:(std::numeric_limits<int>::max)();
うーん・・・やっぱり奥が深いC++