Move

작자 : Ion Gaztanaga

리뷰매니저 : 필요함

다운로드 : http://svn.boost.org/svn/boost/sandbox/move/

문서 : http://svn.boost.org/svn/boost/sandbox/move/libs/move/doc/html/index.html

 

설명 :

C++0x에서는 무브 시멘틱스는 우측 값 참조의 도입으로 구현.

그것은 우리가 기술이 짧고, 실행시 오버헤드가 없는 move()를 구현하는 것을 가능하게 합니다.

Boost.Move는 우측 값 참조를 구현한 컴파일러뿐만이 아닌 C++03의 컴파일러에서도 무브 시멘틱스를 구현하는 툴을 제공하는 라이브러리입니다.

 

 

 

Containers

작자 : Ion Gaztanaga

리뷰매니저 : 필요함.

다운로드 : http://www.boostpro.com/vault/index.php?action=downloadfile&filename=boost.move.container.zip&directory=Containers&

문서 : http://svn.boost.org/svn/boost/sandbox/move/libs/container/doc/html/index.html

 

설명 :

Boost.Container 라이브러리는 STL컨테이너를 포함한 몇 개의 유명한 컨테이너를 구현합니다.

이 라이브러리의 목표는 표준 컨테이너에 없는 것 혹은 C++03의 컴파일러에 최신의 표준 드래프트의 기능을 제공하는 것입니다.

 

 

 

Interval Template Library

작자 : Joachim Faulhaber

 

설명 :

Interval Template Library(Itl)interval라는 2 종류의 구간 컨테이너를

제공합니다

 

interval_set interval_map.

interval_setmap은 정확히 요소의 set 혹은 map으로서 사용할 수 있습니다. 그러나 요소가 인접한 조사로 나타날 때, 그러한 스페이스와 시간은 꽤 효율적입니다

 

interval.

이것은 분명하게 일자와 시간에 관련한 문제를 취급하는 분야에서는 많은 문제 영역(problem domain)의 케이스입니다.

 

구간 컨테이너는 분할로 일하는 것을 interval_set의 교차점(intersect)을 가능하게 합니다. 예를 들면 수 개월의 그리드를

가지는 구간 컨테이너와 교차하여 다음에 그러한 수 개월에 걸쳐서 반복하고 싶을지도 모릅니다.

 

마지막으로 추가의 intervalinterval_map에 저장되는 간격으로 오버랩 하는 경우 interval_map은 관련하는 값 상의 집합을 제공합니다.

이 기능은 오버랩상의 집성체(aggregate on overlap)로 불립니다.

 

아래에 예를 나타냅니다:

typedef set<string> guests;

interval_map<time, guests> party;

guests mary; mary.insert("Mary");

guests harry; harry.insert("Harry");

party += make_pair(interval<time>::rightopen(20:00, 22:00),mary);

party += make_pair(interval<time>::rightopen_(21:00, 23:00),harry);

 

// party now contains

[20:00, 21:00)->{"Mary"}

[21:00, 22:00)->{"Harry","Mary"} //guest sets aggregated on overlap

[22:00, 23:00)->{"Harry"}

 

예로부터 알 수 있듯이 interval_map(관련하는 값 상의) 누적적(accumulative) 뿐만이 아니라, (시간 차원상의) decompositional 행동 양쪽 모두를 가집니다.

 

 

 

Type Traits Extensions

작자 : Frédéric Bron

리뷰매니저 : 필요함

다운로드 : https://svn.boost.org/trac/boost/browser/sandbox/type_traits

 

설명 : 추가의 목적은 형태 TU<, <=, >, >=, ==, != 라고 하는 연산자로 비교 가능할지를 검지하는 형태 특성을 더하는 것입니다.

 

아래의 traits를 추가합니다:

is_equal_to_comparable<T,U>

is_greater_comparable<T,U>

is_greater_equal_comparable<T,U>

is_less_comparable<T,U>

is_less_equal_comparable<T,U>

is_not_equal_to_comparable<T,U>

 

이러한 이름은 표준 템플릿 라이브러리에 근거합니다.

(<functional> header, section 20.3.3 of the standard)

 

코드에는 아래의 성질이 있습니다:

t<u에 의미가 있고 bool에 변환 가능한 형태를 돌려주는 경우 true를 돌려준다</ppp>

t<u가 무의미한 경우 false를 돌려준다</ppp>

t<u에 의미가 있고 void를 돌려주는 경우는 compile error가 된다</ppp>

 (컴파일 에러를 피할 가능성은 연산자에 의해서 true를 돌려주는 것이지만 false를 돌려주는 것이 바람직하고, 편법이라는 의미는 있다)

 

by 흥배 2010.03.05 08:30