이것은 문서의 이전 버전입니다!


C++

Bjarne StroustrupCSIMULA 스타일의 객체지향 기능을 추가한다고 삽질하다가 흑막이 되어 버린 프로그래밍 언어. ISO/IEC 14883으로 표준화되어 있다.

C++를 객체지향 프로그래밍 언어라고 부를 수 없는 가장 큰 이유는 C++의 객체지향은 다른 객체지향 언어들에 비해서 그렇게 좋은 편이 아니기 때문(…)인데 이는 C랑 소스 레벨에서 호환되겠다는 당치도 않은 목표 때문에 동적인 구현이 필요한 많은 기능을 빼먹은 탓이다. 대신 C++는 컴파일시간에 최대한 많은 걸 하기 위해서 제네릭프로그래밍템플릿 메타프로그래밍을 강력하게 지원하기 때문에 결과적으로 언어 설계가 특이하게 나와 버렸다.

루비를 만든 마츠모토 유키히로최소 놀람의 법칙을 설명하면서 "옛날에 C++ 프로그래밍을 2년 내내 했는데 여전히 언어가 사람 놀래키더라"라고 C++를 깐 적이 있다.1)

버전들

현재 쓰는 C++는 1998년에 표준화되어 ISO/IEC 14883:1998(흔히 C++98)이 되었다. (이전의 C++ 구현은 벤더에 따라 천차만별이었고 STL은 커녕 심지어 iostream 라이브러리가 없기도 했다.) 여기에 수정판으로 ISO/IEC 14883:2003(흔히 C++03)이 있긴 하지만 보통 구분은 별로 안 한다.

다음 C++ 버전은 2010년 현재 계획대로라면 ISO/IEC 14883:2011(흔히 C++0x)이 될 예정이다. 물론 약자에서 알 수 있듯 원래는 2009년에 나오려고 했지만 망한 걸 보면 2012년에 나올지도 모른다. 에구.


도쿠위키DokuWiki-custom(rev 9085d92e02)을 씁니다.
마지막 수정 2011-05-30 18:25 | 외부 편집기