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
[27586] 제 질문은 그게 아니었습니다.
cele [] 743 읽음    2003-10-20 17:10
using namespace std; 가 무엇인가에 대한 질문이 아니라
이 문장이 기본적으로 포함되게 됨에도 불구하고 Builder 에서 반드시 소스코드에 새로 저 문장을
강제적으로 추가시키게 하는게 이상하다는 거였습니다.
아니면 충분히 설명해주신건데 제가 못 알아들은건지;
제가 허접이라 잘 못알아들은 것이면 너그러이 용서를..
다시 설명해보겠습니다.

다음은 <iostream> 이고
//---------------------------------------------------
#ifdef _USE_OLD_RW_STL
# include <oldstl\iostream.h>
#else
# include <stlport\iostream>
/* Define __STD_IOSTREAM__ here to cause sysclass.h to define
    VCL_IOSTREAM which causes certian iostream operators to get defined
*/
#define __STD_IOSTREAM__
#endif

#if !defined(__USING_STD_NAMES__) && defined(__cplusplus)
using namespace std;
#endif /* __USING_STD_NAMES__ */
//----------------------------------------------------

이거는 hello.cpp 라고 하면
//----------------------------------------------------
#include <iostream>

int main()
{
  cout << "Hello" << endl;
  return 0;
}
//----------------------------------------------------

hello.cpp 는 컴파일시에 전처리기에 의해 다음과 같이 될것입니다.
//----------------------------------------------------
# include <stlport\iostream>
#define __STD_IOSTREAM__
using namespace std;

int main()
{
  cout << "Hello" << endl;
  return 0;
}
//----------------------------------------------------

_USE_OLD_RW_STL
이건 Builder6 에선 정의되지 않을테고
__cplusplus
이건 당연히 정의되겠고
__USING_STD_NAMES__
이건 using namespace std; 구문 포함 확인 매크로일테구요

결론적으로
#if !defined(__USING_STD_NAMES__) && defined(__cplusplus)
using namespace std;
#endif /* __USING_STD_NAMES__ */
이 구문이 긍정이 되면서 using namespace std; 문장이 포함되게 됩니다.

실제로 <iostream> 내용을 그대로 복사해서 File1.h 를 만든다음
이것을 hello.cpp 에 #include 추가한 후 실행하면 당연히 using namespace std;
없이도 실행이 됩니다.
그런데 유독 <iostream> 만 저 구문이 효력이 없느냐는거죠.
혹시나 해서 프로젝트 옵션들에서 c++ 문법 강화 같은 것들을 찾아보았는데 없는 것 같더군요.
정말 궁금한건데 왜 그런지 모르겠군요.
아니면 제가 뭔가 치명적이고 중대한 사실을 알지 못하고 있는것인지..
아직 초보라 그럴 가능성도 많을 것 같은데;;
그럼.. 답변이 올라오길 기다리면서..
감사합니다.




+ -

관련 글 리스트
27581 iostream 헤더에.. cele 929 2003/10/20
27593     Re:iostream 헤더에.. 임문환.실업자 978 2003/10/20
27596         명쾌한 답변 정말 감사드립니다. cele 777 2003/10/21
27582     Re:iostream 헤더에.. 김백일.cedar 934 2003/10/20
27586         제 질문은 그게 아니었습니다. cele 743 2003/10/20
27588             뭔가 착각하신듯... 김백일.cedar 780 2003/10/20
27592                 잘못 알고 계시는 것 같습니다만.. cele 957 2003/10/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.