Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
C++11의
새로운
기능들

박민근
C++11 이란?
C++의 추가된 표준 기능.
11은 2011년도에
ISO 승인이 난것을 의미.

Boost의 일부 라이브러리 포함
짱짱한 기능으로 무장해서
발전됨
C++98

C++03
<출처 : [KGC2012] Boost 라이브러리와 C++11 >
최흥배
2006년까지 새로운 표준에 들어갈 기능을 제안 받
음
당초 계획은 2009년까지 표준을 확정하는 것.
그래서 C++0x라고 부르기로 함
2011년 8월 12일에 ISO에서 승인을 받음

C++11
• C++0x TR1 라이브러리 추가
• VC++ 버전 9

<출처 : [KGC2012] Boost 라이브러리와 C++11 >
최흥배
• auto
• static_assert
• rvalue Reference
• lambda
• decltype
• nullptr
• unique_ptr
• make_shared
• STL 추가

<출처 : [KGC201...
http://msdn.microsoft.com/ko-kr/library/vstudio/hh567368.aspx
<출처 : [KGC2012] Boost 라이브러리와 C++11 >
최흥배
auto
컴파일 타임때 타입이 자동으로 정해 진다!
auto
STL의 Iterator 사용시에 유용
람다
이름 없는 함수.
함수 객체가 들어가야할 자리에, 대신에 간단히 함수 자체를 직접 구현 가능
함수 포인터처럼 사용도 가능
STL의 함수 객체 대신에 아주 유용하다.
람다
람다
Range base for
배열과 STL의 반복 for문을
한큐에 간단하게~!
Range base for
nullptr
NULL(0)이 아닌, 진짜 NULL Pointer
기존의 NULL(0)하고도 호환이 된다.
shared_ptr
새 버전의 스마트 포인터.
기존의 auto_ptr이 있었지만, 문제가 많아서 거의 쓰이지 않았음
그런 문제들을 해결한 스마트 포인터
shared_ptr
shared_ptr
shared_ptr
shared_ptr
shared_ptr
unique_ptr
순환 참조 문제를 해결하기 위해서,
참조가 단 1개만 존재하는 유니크 스마트 포인터
사용법은 shared_ptr과
동일하다
tuple
2개 이상의 서로 다른 데이터 타입을 하나로 묶을 수 있다
2개 이상의 리턴값이 필요하는 곳등에서 활용
tuple
tuple
array
일반 고정 배열 타입.
Vector<>는 동적 배열 타입인데 반해, 정말 말 그대로 일반 배열
forward_list
단방향 리스트 (list<> 는 양방향 리스트)
양방향 List 보다 용량이 적고, 속도가 빠르다.
forward_list
Emplace : 중간 복사본을 생성하지 않고, 원소에 직접 대입한다.
forward_list
forward_list
Unordered_map
정렬되지 않은 Map. Hash_map 과 같은 구조
Unordered_map
chrono
나노세컨드까지 계산이 가능한 초정밀 타임 객체
chrono
thread
멀티스레드 라이브러리
thread
thread
동기화 객체
동기화 객체
std::atomic
Lock 없이 Lock-Free로 변수값을 변경할 수 있다.
async/future
함수를 비동기로 실행하기
참고 자료
• [KGC11] Boost 라이브러리와 C++11 (최흥배)
• Think About C++11 STL (최흥배/한빛미디어)
Upcoming SlideShare
Loading in …5
×

[1116 박민근] c++11에 추가된 새로운 기능들

18,322 views

Published on

  • Be the first to comment

[1116 박민근] c++11에 추가된 새로운 기능들

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

×