move와 forward 분석
1. move template <class _Ty> constexpr remove_reference_t<_Ty>&& move(_Ty&& _Arg) noexcept { return static_cast<remove_ref...
1. move template <class _Ty> constexpr remove_reference_t<_Ty>&& move(_Ty&& _Arg) noexcept { return static_cast<remove_ref...
1. Placement New란? 미리 할당된 공간에 프로그래머가 객체를 생성 및 초기화를 해줄 수 있는 문법 메모리 풀을 구현할 때 해당 방식을 사용한다 2. Placement New 설명 <new>헤더를 포함시켜줘야 사용 가능
1. std::string_view C++ 17부터 추가된 string을 복사없이 사용할 수 있게 하는 문법
1. 유니폼 초기화(Uniform Initialization) 기존 초기화식의 모호성을 회피하기 위해 생긴 문법
1. 템플릿 메타함수 템플릿 메타함수란?
1. SFINAE Substitution Failure Is Not an Error
1. Type이 아닌 Template 인자값 Template에 Type이 아닌 값을 전달해줄 수 있다. ```cpp #include
1. 정의 <utility> 에 정의된 함수 std::declval
1. constexpr 참고링크 : https://modoocode.com/293
Modern Cpp에서 추가된 개념 중 중요한 Rvalue Lvalue 에 관해 서술
0. 참고문서 해당 문서 먼저 숙련 후 참고 1. 사용상의 주의사항 스마트포인터를 사용하면 temlpate란에 *를 붙이지 않지만 포인터로 선언되는 것을 항상 염두해야 한다.
C 기반의 Raw pointer에서 일어나는 여러가지 문제점을 해소하기 위해 나온 포인터
1. C++ 고유 리터럴 C++에는 코드에 직접 삽입된 값, 변경할 수 없으므로 상수라고 불림
1. reinterpret_cast 포인터>포인터, 포인터 > 일반변수, 일반변수 >포인터 자료형을 바꿀 수 있는 Cast 형변환이 이뤄지면 해당 자료형의 bit수에 맞게 들어간다 void* 로 전달할 수 있는 유일한 Casting struct에 있...
1. auto의 타입추론 auto 는 기본적으로 C++의 긴 타입들을 짧게 변환할 수 있지만 auto의 타입추론은 몇가지의 상황에서 100%로 정밀하지 않다. 그리고 auto의 타입추론은 template의 타입추론과 똑같다.
1. 기본정의 포인터와는 다르게 Reference는 변수에 별명을 하나 더 추가하는 식 따라서 초기화 할 때 대상을 필수로 지정해주어야 하며 바꿀 수 없다
1. RVO와 NRVO란? RVO = Return Value Optimization
SOLID 원칙이란?