1. ホーム
  2. c++

[解決済み] windows.hが含まれているとstd::minはなぜ失敗するのですか?

2022-07-17 18:48:32

質問

#include <algorithm>
#include <Windows.h>

int main()
{
    int k = std::min(3, 4);
    return 0;
}

Windows.hをインクルードすると、windowsはどうなるのでしょうか?私は std::min を使うことができません。エラーメッセージは

error C2589: '(' : illegal token on right side of '::'
error C2059: syntax error : '::'

どのように解決するのですか?

この windows.h ヘッダファイル(より正確には windef.h が順番にインクルードしているもの) には、以下のようなマクロがあります。 minmax であり、干渉しています。

あなたは #define NOMINMAX を含む前に