[1116 박민근] c++11에 추가된 새로운 기능들
Post on 30-Jan-2015
5.533 Views
Preview:
DESCRIPTION
TRANSCRIPT
C++11의 새로운기능들
데브루키 (2013.11.16)박민근
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 추가
<출처 : [KGC2012] Boost 라이브러리와 C++11 >최흥배
<출처 : [KGC2012] Boost 라이브러리와 C++11 >최흥배
http://msdn.microsoft.com/ko-kr/library/vstudio/hh567368.aspx
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함수를 비동기로 실행하기
참고 자료• [KGC11] Boost 라이브러리와 C++11 (최흥배)
• Think About C++11 STL ( 최흥배 / 한빛미디어 )
top related