Cpp

move와 forward 분석

1 분 소요

1. move template <class _Ty> constexpr remove_reference_t<_Ty>&& move(_Ty&& _Arg) noexcept { return static_cast<remove_ref...

Placement New

최대 1 분 소요

1. Placement New란? 미리 할당된 공간에 프로그래머가 객체를 생성 및 초기화를 해줄 수 있는 문법 메모리 풀을 구현할 때 해당 방식을 사용한다         2. Placement New 설명 <new>헤더를 포함시켜줘야 사용 가능

string_view

최대 1 분 소요

1. std::string_view C++ 17부터 추가된 string을 복사없이 사용할 수 있게 하는 문법

Uniform Initialization

3 분 소요

1. 유니폼 초기화(Uniform Initialization) 기존 초기화식의 모호성을 회피하기 위해 생긴 문법

Type Traits

3 분 소요

1. 템플릿 메타함수 템플릿 메타함수란?

Template SFINAE

3 분 소요

1. SFINAE Substitution Failure Is Not an Error

Template 심화문법

4 분 소요

1. Type이 아닌 Template 인자값 Template에 Type이 아닌 값을 전달해줄 수 있다. ```cpp #include

declval

1 분 소요

1. 정의 <utility> 에 정의된 함수 std::declval

constexpr

2 분 소요

1. constexpr 참고링크 : https://modoocode.com/293

Move Sementics

5 분 소요

Modern Cpp에서 추가된 개념 중 중요한 Rvalue Lvalue 에 관해 서술

Smart Pointer의 사용

2 분 소요

0. 참고문서 해당 문서 먼저 숙련 후 참고         1. 사용상의 주의사항 스마트포인터를 사용하면 temlpate란에 *를 붙이지 않지만 포인터로 선언되는 것을 항상 염두해야 한다.

C++의 Smart Pointer

3 분 소요

C 기반의 Raw pointer에서 일어나는 여러가지 문제점을 해소하기 위해 나온 포인터

User-defined Literals

1 분 소요

1. C++ 고유 리터럴 C++에는 코드에 직접 삽입된 값, 변경할 수 없으므로 상수라고 불림

C++의 Cast 연산자

1 분 소요

1. reinterpret_cast 포인터>포인터, 포인터 > 일반변수, 일반변수 >포인터 자료형을 바꿀 수 있는 Cast 형변환이 이뤄지면 해당 자료형의 bit수에 맞게 들어간다 void* 로 전달할 수 있는 유일한 Casting struct에 있...

auto와 decltype 키워드

3 분 소요

1. auto의 타입추론 auto 는 기본적으로 C++의 긴 타입들을 짧게 변환할 수 있지만 auto의 타입추론은 몇가지의 상황에서 100%로 정밀하지 않다. 그리고 auto의 타입추론은 template의 타입추론과 똑같다.

Reference의 성질

2 분 소요

1. 기본정의 포인터와는 다르게 Reference는 변수에 별명을 하나 더 추가하는 식 따라서 초기화 할 때 대상을 필수로 지정해주어야 하며 바꿀 수 없다

RVO와 NRVO

1 분 소요

1. RVO와 NRVO란? RVO = Return Value Optimization