[1116 박민근] c++11에 추가된 새로운 기능들
DESCRIPTION
TRANSCRIPT
![Page 1: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/1.jpg)
C++11의 새로운기능들
데브루키 (2013.11.16)박민근
![Page 2: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/2.jpg)
C++11 이란 ?
C++ 의 추가된 표준 기능 . 11 은 2011 년도에 ISO 승인이 난것을 의미 .
Boost 의 일부 라이브러리 포함짱짱한 기능으로 무장해서
발전됨
![Page 3: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/3.jpg)
C++98
C++03
<출처 : [KGC2012] Boost 라이브러리와 C++11 >최흥배
![Page 4: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/4.jpg)
2006 년까지 새로운 표준에 들어갈 기능을 제안 받음
당초 계획은 2009 년까지 표준을 확정하는 것 .
그래서 C++0x 라고 부르기로 함
![Page 5: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/5.jpg)
2011 년 8 월 12 일에 ISO 에서 승인을 받음
C++11
![Page 6: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/6.jpg)
• C++0x TR1 라이브러리 추가
• VC++ 버전 9
<출처 : [KGC2012] Boost 라이브러리와 C++11 >최흥배
![Page 7: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/7.jpg)
• auto• static_assert• rvalue Reference• lambda• decltype• nullptr• unique_ptr• make_shared• STL 추가
<출처 : [KGC2012] Boost 라이브러리와 C++11 >최흥배
![Page 8: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/8.jpg)
<출처 : [KGC2012] Boost 라이브러리와 C++11 >최흥배
http://msdn.microsoft.com/ko-kr/library/vstudio/hh567368.aspx
![Page 9: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/9.jpg)
auto
컴파일 타임때 타입이 자동으로 정해 진다 !
![Page 10: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/10.jpg)
autoSTL 의 Iterator 사용시에 유용
![Page 11: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/11.jpg)
람다이름 없는 함수 . 함수 객체가 들어가야할 자리에 , 대신에 간단히 함수 자체를 직접 구현 가능
함수 포인터처럼 사용도 가능
STL 의 함수 객체 대신에 아주 유용하다 .
![Page 12: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/12.jpg)
람다
![Page 13: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/13.jpg)
람다
![Page 14: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/14.jpg)
Range base for
배열과 STL 의 반복 for 문을
한큐에 간단하게 ~!
![Page 15: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/15.jpg)
Range base for
![Page 16: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/16.jpg)
nullptrNULL(0) 이 아닌 , 진짜 NULL Pointer
기존의 NULL(0) 하고도 호환이 된다 .
![Page 17: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/17.jpg)
shared_ptr새 버전의 스마트 포인터 . 기존의 auto_ptr 이 있었지만 , 문제가 많아서 거의 쓰이지 않았음그런 문제들을 해결한 스마트 포인터
![Page 18: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/18.jpg)
shared_ptr
![Page 19: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/19.jpg)
shared_ptr
![Page 20: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/20.jpg)
shared_ptr
![Page 21: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/21.jpg)
shared_ptr
![Page 22: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/22.jpg)
shared_ptr
![Page 23: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/23.jpg)
unique_ptr순환 참조 문제를 해결하기 위해서 , 참조가 단 1 개만 존재하는 유니크 스마트 포인터
사용법은 shared_ptr 과
동일하다
![Page 24: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/24.jpg)
tuple2 개 이상의 서로 다른 데이터 타입을 하나로 묶을 수 있다 2 개 이상의 리턴값이 필요하는 곳등에서 활용
![Page 25: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/25.jpg)
tuple
![Page 26: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/26.jpg)
tuple
![Page 27: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/27.jpg)
array일반 고정 배열 타입 . Vector<> 는 동적 배열 타입인데 반해 , 정말 말 그대로 일반 배열
![Page 28: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/28.jpg)
forward_list단방향 리스트 (list<> 는 양방향 리스트 )양방향 List 보다 용량이 적고 , 속도가 빠르다 .
![Page 29: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/29.jpg)
forward_listEmplace : 중간 복사본을 생성하지 않고 , 원소에 직접 대입한다 .
![Page 30: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/30.jpg)
forward_list
![Page 31: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/31.jpg)
forward_list
![Page 32: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/32.jpg)
Unordered_map정렬되지 않은 Map. Hash_map 과 같은 구조
![Page 33: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/33.jpg)
Unordered_map
![Page 34: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/34.jpg)
chrono나노세컨드까지 계산이 가능한 초정밀 타임 객체
![Page 35: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/35.jpg)
chrono
![Page 36: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/36.jpg)
thread멀티스레드 라이브러리
![Page 37: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/37.jpg)
thread
![Page 38: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/38.jpg)
thread
![Page 39: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/39.jpg)
동기화 객체
![Page 40: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/40.jpg)
동기화 객체
![Page 41: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/41.jpg)
std::atomicLock 없이 Lock-Free 로 변수값을 변경할 수 있다 .
![Page 42: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/42.jpg)
async/fu-ture함수를 비동기로 실행하기
![Page 43: [1116 박민근] c++11에 추가된 새로운 기능들](https://reader033.vdocuments.net/reader033/viewer/2022061300/54cb0a6f4a79591e0f8b4576/html5/thumbnails/43.jpg)
참고 자료• [KGC11] Boost 라이브러리와 C++11 (최흥배)
• Think About C++11 STL ( 최흥배 / 한빛미디어 )