C++ 프로그래밍

C++ Technical Report 1 (TR1) : Overview

하늘흐늘 2009. 7. 23. 14:14
반응형

C++ TR1은 C++ 표준 라이브러리에 대하여 새롭게 추가되는 라이브러리에 대한 기술 문서로서, 우리에게는 추가된 C++ 라이브러리를 의미합니다.

2005년 6월 24일에 제안된 문서

가 현재 심사중에 있습니다. TR2은 C++0x가 나온 이후에 나올 것으로 예정되어 있습니다.
TR1은 Visual Studio 2008 한글판과 같은 경우 Service Pack1을 깔면 쓸 수 있습니다. 이 버전에는 C99에 대한 호환성 부분과 수학라이브러리는 지원하지 않습니다. 또한 영문판과 같은 경우는 별도의 Feature Pack 2008을 다운받아서 깔아야 합니다.


General Utilities
Reference Wrapper (tr1::reference_wrapper)
Boost.Ref에 기초합니다.
<functional> 헤더에 cref, ref, reference_wrapper가 추가되었습니다.
함수 포인터의 인자가 참조(Reference)임을 알려 줍니다.

Smart Pointers
Boost Smart Pointer Library에 기초합니다.
<memory> 헤더에 shared_ptr, weak_ptr이 추가되었습니다.


Function pobjects
Polymorphic Function Wrappers (tr1::function)
Boost.Function에 기초한다.
함수 포인터, 멤버함수 포인터 그리고 함수 객체와 같은 모든 Callables를 저장합니다.

Function Object Binders (tr1::bind)
Boost Bind library에 기초합니다.
표준 std::bind1st, std::bind2nd의 일반화된 버전입니다.

Function Return Types (tr1::result_of)
Boost로 부터 가져온 것입니다.

Function Template mem_fn (tr1::mem_fn)
Boost Mem Fn library에 기초합니다.
mem_fn
std::mem_fun, std::mem_fun_ref의 기능을 향상 합니다.
멤버 함수의 포인터를 함수 객체처럼 취급하도록 허용합니다.


Metaprogramming and Type Traits
Boost Type Traits library에 기초합니다.
다른 타입 사이의 쿼리와 변화를 가능하게 함으로서 메타프로그래밍을 처리합니다.
새로운 <type_traits>헤더 파일이 추가되었으며 is_pod, has_virtual_destructor, remove_exten등이 추가되었습니다.


Numerical Facilities
Random Number Generation
새로운 <random> 헤더가 추가되었습니다.
성능 좋은 균등 분포(uniform distribution) 난수 스트림 라이브러리를 제공한다.
난수를 발생시키는 4개의 중요 난수 엔진과 2개의 분포 템플릿을 제공합니다.


Mathematical Special Functions
23개의 특별한 수학 함수가 추가되었습니다.
Wikiepdia에 공식과 이름이 소개되어 있는데 공학이나 과학쪽에서 필요로 하시는 분들만 골라서 쓸 듯 합니다.


Containers
Tuple Types
Boost Typle Library에 기초합니다.
새로운 <tuple> 헤더가 추가되었습니다.
std::pair의 확장형 입니다.

Fixed Size Array (tr1::array)
Boost Array Library에 기초합니다.


Unordered Associative Containers (Hash Tables)
새로운 <unordered_set>, <unordered_map> 헤더가 추가되었습니다.
상수시간에 요소 값을 찾지만 최악의 경우에 선형시간 N에 요소의 값을 찾습니다.


Regular Expressions
Boost RegEx Library에 기초합니다.
텍스트 처리를 위한 패턴 매칭에 사용되는 정규식을 지원합니다. 유니코드를 지원함으로 한글도 지원됩니다.
새로운 <regex> 헤더가 추가되었습니다.


C Compatibility
C99 버전과의 호환성이 더욱 좋아졌습니다.



참조사이트

Wikipedia C++ Technical Report 1 Scott Meyers' Effective C++ TR1 Information 갱주니 블로그(AiWisdom) 'MSDN TR1 세미나 자료 및 샘플 코드' 김윤수의 이상계를 꿈꾸면 'C++ 이야기 열번쨰: TR1(1st Library Extension) History'
반응형