Std와 Windows.h Max 매크로 충돌: A 솔루션
C로 개발할 때 표준 라이브러리 정의와 Windows.h 헤더가 발생할 수 있습니다. 이 충돌은 max 매크로의 사용에 영향을 미칠 수 있습니다.
구체적으로 제공된 코드 조각은 max 매크로를 사용하여 cin의 유효하지 않은 사용자 입력을 처리하려고 시도합니다. 그러나 Windows에서는 Windows.h의 max 매크로가 std::numeric_limits
이 문제를 해결하려면 더 깔끔하고 세련된 접근 방식을 사용하세요. Windef.h에서 최소 및 최대 정의를 억제합니다. 이는 Windows.h를 포함하기 전에 NOMINMAX 매크로를 정의하여 달성할 수 있습니다.
#define NOMINMAX #include <Windows.h> // includes WinDef.h which defines min() max() 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를 정의하면 Windows.h에서 충돌하는 최소 및 최대 정의를 효과적으로 비활성화하여 std::를 사용할 수 있습니다. Numeric_limits
위 내용은 std::numeric_limits::max()를 사용하여 Windows.h Max 매크로 충돌을 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!