C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[26547] Re:컴파일
박지훈.임프 [cbuilder] 855 읽음    2003-08-03 02:03
C++Builder 5와 6의 기본 STL이 달라서 그렇습니다.
C++Builder 5에서 사용하던 min/max 함수는 stdlib.h 헤더파일에 정의되어 있는데, 이것이 원래는
Rogue Wave STL에 포함된 것을 stdlib.h에 갖다놓은 것입니다. 따라서 기본 STL이 Rogue Wave가 아닐
경우에는 이 min/max 함수를 동작하지 않는 것이 원칙이겠지요.
따라서 C++Builder 6에서 기본 STL이 Rogue Wave STL에서 STLPort로 바뀌면서, 기본 STL을 Rogue Wave로
설정하지 않은 경우에는 min/max 함수가 정의되지 않도록 프리프로세서로 지정되어 있습니다.

이런 이유로, C++Builder 5에서 사용하던 동일한 min/max 함수를 그대로 사용하고 싶다면, 기본 STL을
Rogue Wave로 선택하면 됩니다. 이렇게 하려면, 프로젝트 옵션의 Directories/Conditionals에 가서
아래 Conditionals 입력창에 _USE_OLD_RW_STL 라고 입력해주면 됩니다.

물론 min/max 함수 자체는 단순하기 짝이 없기 때문에, 위와 같은 처리가 마음에 안든다면 RW STL이 아닌
다른 라이브러리의 min/max 함수를 호출하거나 혹은 스스로 만드셔도 상관이 없습니다.
참고로 RW STL에서 min 함수는 다음과 같이 선언되어 있지요. 물론 이 부분을 그대로 소스에 복사해서
써도 상관없습니다.

template <class T>
inline const T& min (const T& a, const T& b)
{
  return b < a ? b : a;
}

그럼...


gary 님이 쓰신 글 :
: 빌더5에서 만든 컴포넌트가 빌더6에서 컴파일시 min 함수 부분에서 에러가 나는데요.
: 컴포넌트 컴파일할때 버젼이 다르면 뭔가 조치가 필요할까요?

+ -

관련 글 리스트
26514 컴파일 gary 610 2003/08/01
26547     Re:컴파일 박지훈.임프 855 2003/08/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.