ホームページ >バックエンド開発 >C++ >Windows.h と std::max 間の最大マクロ衝突を解決する方法

Windows.h と std::max 間の最大マクロ衝突を解決する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-10 13:38:02388ブラウズ

How to Resolve Max Macro Collisions Between Windows.h and std::max?

Windows.h と Std での Max マクロの衝突への対処

Windows.h には、min マクロと max マクロを定義する WinDef.h が含まれています。これは、std で定義されている max マクロと競合し、コンパイル エラーが発生する可能性があります。

この問題を解決するには、次の回避策を使用できます。

#define NOMINMAX

#include <Windows.h>
#include <iostream>

using std::cin;
using std::cout;

void Foo()
{
    int delay = 0;
    do
    {
        if (cin.fail())
        {
            cin.clear();
            cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
        }
        cout << "Enter number of seconds between submissions: ";
    } while (!(cin >> delay) || delay == 0);
}

NOMINMAX マクロを定義すると、 WinDef.h の min および max 定義を抑制し、競合することなく std の max マクロを使用できるようにします。

以上がWindows.h と std::max 間の最大マクロ衝突を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。