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

43
C++11 의 의의의 의의의 의의의의 (2013.11.16) 의의의
  • Upload

    -
  • Category

    Documents

  • view

    5.533
  • download

    3

description

 

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

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

C++11의 새로운기능들

데브루키 (2013.11.16)박민근

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

C++11 이란 ?

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

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

발전됨

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

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

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

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

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

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

C++11

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

auto

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

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

autoSTL 의 Iterator 사용시에 유용

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

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

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

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

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

람다

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

람다

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

Range base for

배열과 STL 의 반복 for 문을

한큐에 간단하게 ~!

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

Range base for

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

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

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

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

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

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

shared_ptr

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

shared_ptr

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

shared_ptr

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

shared_ptr

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

shared_ptr

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

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

사용법은 shared_ptr 과

동일하다

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

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

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

tuple

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

tuple

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

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

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

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

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

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

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

forward_list

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

forward_list

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

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

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

Unordered_map

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

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

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

chrono

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

thread멀티스레드 라이브러리

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

thread

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

thread

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

동기화 객체

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

동기화 객체

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

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

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

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