일단 현재 버전을 말하자면, VC2008 버전(Feature Pack 포함)에서 TR1은 지원되지만 C++0x는 지원되지 않더군요. 일부 VC 매니아 개발자들이 VC2008에서의 C++0x와 TR1을 애매하게 섞어 써서 C++0x가 지원되는 건가 했었는데, 자세히 뒤져보니 지원되는 것은 TR1 뿐이었습니다.
물론 TR1이 C++0x의 일부라고도 할 수 있으니까 VC2008에서 C++0x가 지원된다고 했을 때 완전히 거짓은 아닐 수 있지만, 엄밀히 말해서 TR1은 라이브러리일 뿐이고, 반면 C++0x는 C++에 대한 문법 스펙 추가 사항이기 때문에, 일반적으로 C++ 개발자들이 기대하는 C++0x 지원은 VC2008에서는 전혀 없는 거죠.
VC 2010 버전에서 드디어 C++0x 지원이 시작될 예정이라고는 하는데, 그것도 아주 일부 문법 몇가지에만 국한되는군요. 김호광님이 올려주신 세개의 MS VC 팀 블로그 글들은 VC 2010에서 지원될 C++0x 문법들에 대한 내용인데...
세 글을 간단히 요약하자면, 일단 VC 2010에서 지원될 C++0x 스펙은 lambda, auto, static_assert, rvalue references, decltype 까지라는 얘기네요. "VC 2010에서 추가될 C++0x 문법은 이 다섯가지가 모두다" 라고 써놨군요.
"decltype is the
fifth and
final C++0x Core Language feature being added to VC10."
'이 다섯가지가 모두다'라고 명확하게 찍어 쓴 이유가 있는데요. 이 세 블로그 글에는 "이 문법은 안되나요?" "안됩니다", "그럼 이건요?" "그것도 안됩니다" 이런 식의 댓글들이 수도 없이 붙었기 때문입니다. '그건 안되는데요' 대답에 지쳤다는 거죠.
사실 다섯가지 중의 마지막인 decltype의 경우 작년 10월에 올라온 첫번째 글의 댓글에서는 강한 요구에도 불구하고 지원 안된다고 했다가, 올 4월에 올라온 세번째 글에서 갑자기 지원을 한다고 입장을 바꿨습니다. 사용자들의 강력한 요구에 굴복해서 6개월 사이에 맹글어넣은 거죠. ㅎㅎ
이런 정도라면, VC의 2008 버전은 물론 VC2010의 C++0x 지원은 C++Builder의 현재 버전인 2009 수준에도 한참 못미칩니다. (블로그 주인장이 댓글들에서 답변한 내용들을 보면, VC 2010의 그 다음 버전에서도 별로 희망이 보이지 않네요)
아시다시피 C++Builder의 현재 버전인 2009에서도 C++0x를 강력하게 지원하고 있는데요. 올 가을에 출시될 C++Builder 2010에서는 당연히 C++0x 문법이 지금보다도 훨씬 더 강화될 것이기 때문에 C++Builder와 Visual C++ 사이의 C++ 스펙 지원 차이는 더 크게 벌어질 겁니다.
김호광 님이 쓰신 글 :
: VC 10 버전의 진화
:
: 이번에 VC는 2008버전부터 C++과 TR1 등을 많이 지원하기 시작했습니다. VC 10은 좀 더 표준에 가까운 문법을 지원하게 될 예정입니다.
:
: boost 라이브러리 역시 차별을 하지 않기 때문에 호환성이라는 면에서 많이 좋아질 듯 싶습니다.
:
: MS가 닷넷으로 가다가 다시 네이티브 컴파일러인 C++을 좀 더 지원하는 모습을 보이고 있습니다.
:
: 하지만 아직 닷넷 파가 득세하고 있는 모양새입니다. 프레임워크 버전에 또 올랐습니다.
:
: 실버라이트와 C#, 닷넷을 통해서 차세대 인터페이스를 구현하려고 하는 중이랍니다.
:
: 그런데..
:
: MSN 메신저의 경우 DirectX로 UI를 구현하고 있습니다.
:
: GDI로 이것저것 하다가 한계에 도달한 것입니다. 덕분에 확실히 느려진 모습을 보이고 있습니다.
:
: 대신 화려한 인터페이스를 얻었지만, 사용자들은 그 불편한 속도를 경험하고 있습니다.
:
: 앞으로 닷넷 프레임워크의 미래는 그리 밝지 않습니다.
:
: 하지만 좀 봐둬야할 대목은 있습니다. SI 노가다에 어쩔 수 없이 꼼사리를 끼기 때문이죠...
:
: 비주얼 스튜디오 10은 빌더, 델파이가 10년 전에 구현한 수준의 RAD 환경을 구현할 것이라고 하지만 그리 신선하지는 않습니다 하지만 파급력은 어쩔 수 없을 것입니다. 대수의 개발 환경이기 때문입니다.
:
:
http://blogs.msdn.com/vcblog/archive/2009/04/22/decltype-c-0x-features-in-vc10-part-3.aspx
:
:
http://blogs.msdn.com/vcblog/archive/2009/02/03/rvalue-references-c-0x-features-in-vc10-part-2.aspx
:
:
:
http://blogs.msdn.com/vcblog/archive/2008/10/28/lambdas-auto-and-static-assert-c-0x-features-in-vc10-part-1.aspx
:
:
: testcode~
: blog.naver.com/testcode