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

Post on 30-Jan-2015

5.533 views 3 download

description

 

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

C++11의 새로운기능들

데브루키 (2013.11.16)박민근

C++11 이란 ?

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

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

발전됨

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

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

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

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

C++11

auto

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

autoSTL 의 Iterator 사용시에 유용

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

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

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

람다

람다

Range base for

배열과 STL 의 반복 for 문을

한큐에 간단하게 ~!

Range base for

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

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

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

shared_ptr

shared_ptr

shared_ptr

shared_ptr

shared_ptr

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

사용법은 shared_ptr 과

동일하다

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

tuple

tuple

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

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

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

forward_list

forward_list

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

Unordered_map

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

chrono

thread멀티스레드 라이브러리

thread

thread

동기화 객체

동기화 객체

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

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