[c++ adv] c++11

43
C++11 의 의의의 의의의 의의의

Upload: mingeun-park

Post on 20-Jun-2015

558 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: [C++ adv] c++11

C++11 의 새로운 기능들

박민근

Page 2: [C++ adv] c++11

C++11 이란 ?

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

Boost 의 일부 라이브러리 포함짱짱한 기능으로 무장해서

발전됨

Page 4: [C++ adv] c++11

2006 년까지 새로운 표준에 들어갈 기능을 제안 받음

당초 계획은 2009 년까지 표준을 확정하는 것 .

그래서 C++0x 라고 부르기로 함

Page 5: [C++ adv] c++11

2011 년 8 월 12 일에 ISO 에서 승인을 받음

C++11

Page 9: [C++ adv] c++11

auto

컴파일 타임때 타입이 자동으로 정해 진다 !

Page 10: [C++ adv] c++11

autoSTL 의 Iterator 사용시에 유용

Page 11: [C++ adv] c++11

람다이름 없는 함수 . 함수 객체가 들어가야할 자리에 , 대신에 간단히 함수 자체를 직접 구현 가능

함수 포인터처럼 사용도 가능

STL 의 함수 객체 대신에 아주 유용하다 .

Page 12: [C++ adv] c++11

람다

Page 13: [C++ adv] c++11

람다

Page 14: [C++ adv] c++11

Range base for

배열과 STL 의 반복 for 문을

한큐에 간단하게 ~!

Page 15: [C++ adv] c++11

Range base for

Page 16: [C++ adv] c++11

nullptrNULL(0) 이 아닌 , 진짜 NULL Pointer

기존의 NULL(0) 하고도 호환이 된다 .

Page 17: [C++ adv] c++11

shared_ptr새 버전의 스마트 포인터 . 기존의 auto_ptr 이 있었지만 , 문제가 많아서 거의 쓰이지 않았음그런 문제들을 해결한 스마트 포인터

Page 18: [C++ adv] c++11

shared_ptr

Page 19: [C++ adv] c++11

shared_ptr

Page 20: [C++ adv] c++11

shared_ptr

Page 21: [C++ adv] c++11

shared_ptr

Page 22: [C++ adv] c++11

shared_ptr

Page 23: [C++ adv] c++11

unique_ptr순환 참조 문제를 해결하기 위해서 , 참조가 단 1 개만 존재하는 유니크 스마트 포인터

사용법은 shared_ptr 과

동일하다

Page 24: [C++ adv] c++11

tuple2 개 이상의 서로 다른 데이터 타입을 하나로 묶을 수 있다 2 개 이상의 리턴값이 필요하는 곳등에서 활용

Page 25: [C++ adv] c++11

tuple

Page 26: [C++ adv] c++11

tuple

Page 27: [C++ adv] c++11

array일반 고정 배열 타입 . Vector<> 는 동적 배열 타입인데 반해 , 정말 말 그대로 일반 배열

Page 28: [C++ adv] c++11

forward_list단방향 리스트 (list<> 는 양방향 리스트 )양방향 List 보다 용량이 적고 , 속도가 빠르다 .

Page 29: [C++ adv] c++11

forward_listEmplace : 중간 복사본을 생성하지 않고 , 원소에 직접 대입한다 .

Page 30: [C++ adv] c++11

forward_list

Page 31: [C++ adv] c++11

forward_list

Page 32: [C++ adv] c++11

Unordered_map정렬되지 않은 Map. Hash_map 과 같은 구조

Page 33: [C++ adv] c++11

Unordered_map

Page 34: [C++ adv] c++11

chrono나노세컨드까지 계산이 가능한 초정밀 타임 객체

Page 35: [C++ adv] c++11

chrono

Page 36: [C++ adv] c++11

thread멀티스레드 라이브러리

Page 37: [C++ adv] c++11

thread

Page 38: [C++ adv] c++11

thread

Page 39: [C++ adv] c++11

동기화 객체

Page 40: [C++ adv] c++11

동기화 객체

Page 41: [C++ adv] c++11

std::atomicLock 없이 Lock-Free 로 변수값을 변경할 수 있다 .

Page 42: [C++ adv] c++11

async/fu-ture함수를 비동기로 실행하기