SlideShare a Scribd company logo
1 of 43
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 추가

<출처 : [KGC2012] Boost 라이브러리와 C++11 >
최흥배
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 (최흥배/한빛미디어)

More Related Content

What's hot

김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
devCAT Studio, NEXON
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
devCAT Studio, NEXON
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
devCAT Studio, NEXON
 
전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017
전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017
전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017
devCAT Studio, NEXON
 
게임 애셋 스트리밍 패치
게임 애셋 스트리밍 패치게임 애셋 스트리밍 패치
게임 애셋 스트리밍 패치
Seungjae Lee
 
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017
devCAT Studio, NEXON
 

What's hot (20)

[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
 
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
 
게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴
 
Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)
Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)
Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)
 
게임회사 실무용어 완전정복! 쿡앱스 용어정리집
게임회사 실무용어 완전정복! 쿡앱스 용어정리집 게임회사 실무용어 완전정복! 쿡앱스 용어정리집
게임회사 실무용어 완전정복! 쿡앱스 용어정리집
 
Cedec2015 お客様に驚きを提供する運営 消滅都市の事例から-
Cedec2015 お客様に驚きを提供する運営  消滅都市の事例から-Cedec2015 お客様に驚きを提供する運営  消滅都市の事例から-
Cedec2015 お客様に驚きを提供する運営 消滅都市の事例から-
 
NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할
 
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
 
전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017
전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017
전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017
 
GameInstance에 대해서 알아보자
GameInstance에 대해서 알아보자GameInstance에 대해서 알아보자
GameInstance에 대해서 알아보자
 
게임 애셋 스트리밍 패치
게임 애셋 스트리밍 패치게임 애셋 스트리밍 패치
게임 애셋 스트리밍 패치
 
김동건, 갈망의 아궁이
김동건, 갈망의 아궁이김동건, 갈망의 아궁이
김동건, 갈망의 아궁이
 
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017
 
NDC 2012 이은석 - 고전게임 화이트데이 디렉터 포스트모템
NDC 2012 이은석 - 고전게임 화이트데이 디렉터 포스트모템NDC 2012 이은석 - 고전게임 화이트데이 디렉터 포스트모템
NDC 2012 이은석 - 고전게임 화이트데이 디렉터 포스트모템
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능
 
게임강연정리
게임강연정리게임강연정리
게임강연정리
 
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
 
[ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인
[ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인 [ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인
[ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인
 

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

C#으로 게임 엔진 만들기(2)
C#으로 게임 엔진 만들기(2)C#으로 게임 엔진 만들기(2)
C#으로 게임 엔진 만들기(2)
지환 김
 
Boost 라이브리와 C++11
Boost 라이브리와 C++11Boost 라이브리와 C++11
Boost 라이브리와 C++11
OnGameServer
 
C#으로 게임 엔진 만들기(1)
C#으로 게임 엔진 만들기(1)C#으로 게임 엔진 만들기(1)
C#으로 게임 엔진 만들기(1)
지환 김
 
MinWin에 대해서
MinWin에 대해서MinWin에 대해서
MinWin에 대해서
흥배 최
 
MinWin에 대해서
MinWin에 대해서MinWin에 대해서
MinWin에 대해서
OnGameServer
 

Similar to [1116 박민근] c++11에 추가된 새로운 기능들 (20)

Cocos2dx와 c++11를 이용한 게임 개발
Cocos2dx와 c++11를 이용한 게임 개발Cocos2dx와 c++11를 이용한 게임 개발
Cocos2dx와 c++11를 이용한 게임 개발
 
C#으로 게임 엔진 만들기(2)
C#으로 게임 엔진 만들기(2)C#으로 게임 엔진 만들기(2)
C#으로 게임 엔진 만들기(2)
 
Boost 라이브리와 C++11
Boost 라이브리와 C++11Boost 라이브리와 C++11
Boost 라이브리와 C++11
 
[컨트리뷰톤 2020] 리브레오피스(LibreOffice)의 QA 및 소스 코드 리뷰
[컨트리뷰톤 2020] 리브레오피스(LibreOffice)의 QA 및 소스 코드 리뷰[컨트리뷰톤 2020] 리브레오피스(LibreOffice)의 QA 및 소스 코드 리뷰
[컨트리뷰톤 2020] 리브레오피스(LibreOffice)의 QA 및 소스 코드 리뷰
 
C++ 개발자와 함께 하는 visual studio 2013
C++ 개발자와 함께 하는 visual studio 2013C++ 개발자와 함께 하는 visual studio 2013
C++ 개발자와 함께 하는 visual studio 2013
 
ifcpp build guide
ifcpp build guideifcpp build guide
ifcpp build guide
 
C++20 Key Features Summary
C++20 Key Features SummaryC++20 Key Features Summary
C++20 Key Features Summary
 
Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.
 
github actions kubernetes 설치&운영하기
github actions kubernetes 설치&운영하기github actions kubernetes 설치&운영하기
github actions kubernetes 설치&운영하기
 
[170403 2주차]C언어 A반
[170403 2주차]C언어 A반[170403 2주차]C언어 A반
[170403 2주차]C언어 A반
 
[2021 오픈소스 컨트리뷰션 아카데미] #7 자동교정 XML파일 수정 및 수정한 내용 gerrit으로 제출해보기
[2021 오픈소스 컨트리뷰션 아카데미] #7 자동교정 XML파일 수정 및 수정한 내용 gerrit으로 제출해보기[2021 오픈소스 컨트리뷰션 아카데미] #7 자동교정 XML파일 수정 및 수정한 내용 gerrit으로 제출해보기
[2021 오픈소스 컨트리뷰션 아카데미] #7 자동교정 XML파일 수정 및 수정한 내용 gerrit으로 제출해보기
 
DevOps Study
DevOps StudyDevOps Study
DevOps Study
 
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
 
C#으로 게임 엔진 만들기(1)
C#으로 게임 엔진 만들기(1)C#으로 게임 엔진 만들기(1)
C#으로 게임 엔진 만들기(1)
 
DevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle DeveloperDevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle Developer
 
[2021 오픈소스 컨트리뷰션 아카데미] Libreoffice 한국어 번역 및 사용성 기능 향상 프로젝트 킥오프 미팅 (2021.08.07.)
[2021 오픈소스 컨트리뷰션 아카데미]  Libreoffice 한국어 번역 및 사용성 기능 향상 프로젝트 킥오프 미팅 (2021.08.07.)[2021 오픈소스 컨트리뷰션 아카데미]  Libreoffice 한국어 번역 및 사용성 기능 향상 프로젝트 킥오프 미팅 (2021.08.07.)
[2021 오픈소스 컨트리뷰션 아카데미] Libreoffice 한국어 번역 및 사용성 기능 향상 프로젝트 킥오프 미팅 (2021.08.07.)
 
MinWin에 대해서
MinWin에 대해서MinWin에 대해서
MinWin에 대해서
 
MinWin에 대해서
MinWin에 대해서MinWin에 대해서
MinWin에 대해서
 
DevOps (AWS, Docker, Ansible, Jenkins)
DevOps (AWS, Docker, Ansible, Jenkins)DevOps (AWS, Docker, Ansible, Jenkins)
DevOps (AWS, Docker, Ansible, Jenkins)
 
백엔드 서버 개발과 코틀린의 조합
백엔드 서버 개발과 코틀린의 조합백엔드 서버 개발과 코틀린의 조합
백엔드 서버 개발과 코틀린의 조합
 

More from MinGeun Park

More from MinGeun Park (20)

[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
 
[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6
 
[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5
 
[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3
 
[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2
 
[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석
 
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
 
[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐
 
[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR
 
[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT
 
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
 
[데브루키] Color space gamma correction
[데브루키] Color space gamma correction[데브루키] Color space gamma correction
[데브루키] Color space gamma correction
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick
 
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
 
[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법
 
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 [Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
 
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
 
[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기
 
[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기
 
[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개
 

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