C++ : 3. windows.h 선언 시, std::min, std::max 함수 컴파일 에러 해결 방법
std::min
, std::max
함수를 사용할 때, windows.h
헤더가 선언된 경우, 컴파일 에러가 발생한다.
#include <windows.h>
#include <algorithm>
int main()
{
auto min = std::min(1, 2);
}
에러 발생 원인은 windows.h
에는 매크로로 min
, max
가 이미 정의되어 있기 때문이다.
// windows.h에는 이미 정의가 되어 있음.
// 예시코드로 실제 구현과는 다름.
#define min(a,b) (((a) < (b)) ? (a) : (b))
#define max(a,b) (((a) > (b)) ? (a) : (b))
#define NOMINMAX
을 선언하면 min
, max
매크로가 정의되는 것을 막을 수 있다.
#define NOMINMAX
#include <windows.h>
#include <algorithm>
int main()
{
auto min = std::min(1, 2);
}
댓글남기기