Page 13 -
P. 13

이브러리가 정의됐는데, 이는 부스트(Boost) 라이브러리(http://www.boost.org/)에 토대를 두
                    고 있다.

                    C++11부터 TR1의 표준화와 함께 멀티스레딩 라이브러리가 새로 추가됐다.                                        1
                    C++14는 C++11 표준을 살짝 업데이트한 것에 불과하다. 그래서 스마트 포인터, 튜플, 타입 트

                    레이트, 멀티스레딩에 대한 기존 라이브러리의 몇 가지 개선 사항만 추가됐다.                                        표준 라이브러리

                    C++17부터는 파일 시스템 라이브러리, std::any, std::optional이란 데이터 타입이 새로 추가
                    됐다. C++20(일명 ‘Concepts Lite’)부터 네트워크 프로그래밍 라이브러리와 템플릿 매개변수에
                    대한 타입 시스템이 추가되고 멀티스레딩에 대한 지원이 향상됐다.






                    1.2         개요                                C++ STANDARD LIBRARY







                    C++11에서 제공하는 라이브러리가 워낙 방대해서 어느 것을 사용해야 할지 판단하기 힘들 때가
                    많다. 이 책을 통해 주요 특성을 잘 파악해두자. 표준 라이브러리는 크게 다음과 같이 구성된다.





                    1.2.1 유틸리티


                    유틸리티(utility) 라이브러리는 여러 문맥에 두루 활용할 수 있는 범용 기능을 모아둔 라이브러리다.
                    가령 주어진 값 중에서 최솟값 또는 최댓값을 계산하거나 값을 교체하거나 옮기는 함수가 있다.

                    또 다른 예로 std::function과 std::bind가 있다. std::bind를 이용하면 기존 함수를 토대로 새
                    로운 함수를 쉽게 만들 수 있다. 이렇게 만든 함수를 나중에 호출하기 위해 변수에 바인딩하려면
                    std::function을 사용한다.

                    std::pair나 이를 일반화한 std::tuple을 이용하면 임의의 길이로 된 이형(heterogeneous) 페어나
                    튜플을 생성할 수 있다.

                    레퍼런스 래퍼(reference wrapper)인 std::ref와 std::cref도 꽤 유용하다. std::ref는 변수에 대
                    한 레퍼런스 래퍼 오브젝트를 생성한다. const 레퍼런스는 std::cref로 생성한다.




                                                                                                  29





     c++_06.indd   29                                                                        2021-11-19   오전 9:25:42
   8   9   10   11   12   13   14   15   16   17   18