27
Smart Pointer 박박박

Smart pointer

Embed Size (px)

DESCRIPTION

Introduction of Smart Pointer

Citation preview

Page 1: Smart pointer

Smart Pointer

박경남

Page 2: Smart pointer

차례

• Smart Pointer?• 등장배경 ~ 원리• 여러가지 Smart Pointer• 사용 예

Page 3: Smart pointer

Memory Leak

CPU

Memory

Page 4: Smart pointer

Idea

Page 5: Smart pointer

Idea

Page 6: Smart pointer

Idea

Page 7: Smart pointer

Idea

Page 8: Smart pointer

Idea

Page 9: Smart pointer

Idea

Page 10: Smart pointer

Idea

Page 11: Smart pointer

Idea

Page 12: Smart pointer

auto_ptr

1.배열 해제 불가능2.Reference Counting 을 지원하지 않음

Page 13: Smart pointer

shared_ptr

여전히 배열 해제 불가능

Page 14: Smart pointer

unique_ptr

Reference Counting 을 지원하지 않음

Page 15: Smart pointer

다시 shared_ptr

Page 16: Smart pointer

default_delete??

Page 17: Smart pointer

My Deleter

Page 18: Smart pointer

shared_ptr 의 소멸자에선 ..

Page 19: Smart pointer

lambda

Page 20: Smart pointer

Example : vector

Page 21: Smart pointer

Example : vector

Page 22: Smart pointer

Example : File Handle

Page 23: Smart pointer

Example : Wrapping

Page 24: Smart pointer

Example : CreateFileWA

Page 25: Smart pointer

Example : CreateFileWA

HANDLE hFile = CreateFile(…)CloseHandle(hFile)

FILE* fp = fopen(…)fclose(fp)

Person* p = new Person()delete p

winnt.h

Page 26: Smart pointer

Example : CreateFileWA

Page 27: Smart pointer

?