Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menyelesaikan Perlanggaran Makro `maks` Antara Windows.h dan Perpustakaan Standard?

Bagaimana untuk Menyelesaikan Perlanggaran Makro `maks` Antara Windows.h dan Perpustakaan Standard?

Mary-Kate Olsen
Lepaskan: 2024-11-11 16:41:02
asal
230 orang telah melayarinya

How to Resolve the `max` Macro Collision Between Windows.h and the Standard Library?

Min dan Max Macro Collision Antara Windows.h dan Std

Apabila berurusan dengan pengesahan input dalam C , seseorang mungkin menghadapi konflik antara makro maks yang ditakrifkan dalam Windows.h dan fungsi maks dalam pustaka standard. Ini boleh timbul apabila cuba mengosongkan bendera ralat aliran input menggunakan fungsi abaikan.

Untuk menyelesaikan isu ini, pertimbangkan untuk menggunakan pendekatan berikut:

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

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);
}
Salin selepas log masuk

Makro NOMINMAX menekan min dan takrifan maks dalam Windows.h, membenarkan atur cara menggunakan fungsi maks daripada perpustakaan standard tanpa konflik. Pendekatan ini menghapuskan keperluan untuk menyahtakrif makro maksimum secara manual dan mentakrifkannya semula kemudian.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Perlanggaran Makro `maks` Antara Windows.h dan Perpustakaan Standard?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan