Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 벡터
- C언어
- Private Bytes
- 메모리 누수
- Virtual Byte
- working set
- ASW(Application SpaceWarp)
- Toon Shader
- 가상 바이트
- 프로그래밍 기초
- Rim Light
- URP로 변경
- Specular
- 작업 집합
- 게임 수학
- 개인 바이트
- VR
- Cell Shader
- 3d
- ColorGradingLutPass
- Three(Two) Tone Shading
- Windows Build
- AppSW
- Cell Look
- URP
- OculusMotionVectorPass
- Cartoon Rendering
Archives
- Today
- Total
WinCNT
스마트 포인터 - unique_ptr 본문
unique_ptr
배타적 소유권 개념이 있는 스마트 소유권
하나의 스마트 포인터만이 특정 객체를 소유할 수 있도록, 객체에 소유권을 도입한 스마트 포인터
일반 포인터와는 달리 사용이 끝난 후에 delete 키워드를 사용하여 메모리를 해제할 필요가 없다
소유권 이전
unique_ptr 인스턴스는 move() 멤버 함수를 통해 소유권을 이전할 수는 있지만, 복사는 할 수 없다
소유권이 이전되면, 이전 u 인스턴스는 더 이상 해당 객체를 소유하지 않게 재설정된다
즉, unique_ptr에서는 =(연산자)로 값 카피가 일어나지 않는다, 이동은 가능하다(소유권 이전)
B = A 불가능
B = move(A) 가능
/// <summary>
/// unique_ptr 구현 예상
/// 복사 생성자를 삭제해서 값 복사가 일어나지 않도록 한다
/// </summary>
class A
{
int a = 0;
public:
A() {}
A(int a) : a(a) {};
A(const A& a) = delete; // 복사 생성자 삭제
};
'게임 프로그래밍(학습 내용 정리) > Modern C++' 카테고리의 다른 글
배열 포인트와 _countof(혹은 ARRAYSIZE) (0) | 2022.06.14 |
---|---|
스마트 포인터 (0) | 2022.04.14 |
decltype과 Value Category(lvalue, rvalue, xvalue) (0) | 2022.03.24 |
범위 기반 for문 (0) | 2022.03.24 |
Modern C++ - Auto (0) | 2022.03.24 |