[Error] error C2589

연두비두밥·2024년 3월 29일
post-thumbnail
  • FlatBuffer 라이브러리를 사용하려고 하는 중에 발생한 에러인데, 그 전에도 max와 관련된 에러가 발생했던 경험이 기억나서 해당 내용을 기록하기 위해 작성
Warning C4003: 함수 같은 매크로 호출 'max'에 대해 인수가 부족합니다.
error C2589: '(': '::' 오른쪽에 잘못된 토큰이 있습니다.
error C2062: 예기치 않은 'unknown-type' 형식입니다.
error C2059: 구문 오류: ')'

와 같은 에러가 발생한다.

잘되다가 뭐가 문제지라는 생각이 들었는데 max..!
max에서 자주 에러가 발생하는것 같다..

일단 문제점은
std::max()와 windef.h파일에 있는 #define max(a,b) (((a) > (b)) ? (a) : (b)) 끼리 서로 충돌하는 에러다.

해당 오류 해결법은 가장 상단에

#define NOMINMAX

를 추가하면 된다.
이게 생각보다 자주 일어나는데, 까먹고 있다가 매번 아차차하는 경우가 많은 것 같아서 max나 min에러 뜨면 대체로 이런 원인이므로 잘 기억하고 써먹자.

profile
꾸준하고 싶은 사람

0개의 댓글