Physics-Station phst.hateblo.jp

旧 http://physics-station.blogspot.jp/ から当はてなブログに移行しました。間違ってるところがあればコメントください。記述の正確性は保証しません。

Visual Studio 2013でstd::min std::maxが使えなくなった時の対処

std::max - cppreference.com

Visual Studio 2013以降、Visual Studio 2015も完全にalgorithmに移動したらしいので以下の記述が必要。

#include <algorithm> //必要
int main()
{
    int i = std::max(1,2);
    int j = std::min(3,4);
}

ちなみにVisual Studio 2012以下は以下のコードで動く。

#include <xutility> //非推奨
int main()
{
    int i = std::max(1, 2);
    int j = std::min(3, 4);
}

VC10, VC11ではalgorithm 経由で xutilityに記述、VC12, VC14ではalgorithm に直接記述されるようになったようだ。VC12, VC14では、別のincludeファイルからxutilityが参照されている場合は、明示的にalgorithmを追加してやる必要がある。