예외 처리가 발생할 경우 메모리 상에서 어떠한 일들이 일어나는지 알아봅시다.
스핀락은 Busy Waiting을 통하여 스레드를 잠재우지 않고 약간의 자원을 소모하는 대신 context switching을 방지하여 gain을 얻을 수 있다. Busy Wating : 현재 CPU를 사용하는 스레드가 무한 루프를 돌면서 다른 쓰레드에게 CPU를
다중 상속을 할 때 사용될 수 있는 가상 상속에 대해 알아봅시다.
C++의 상속 구조에서 활용되는 override와 final에 대해 알아봅시다.
착각하기 쉬운 템플릿 함수의 명시적 인스턴스화에 대해 알아봅시다.
noexcpet 키워드는 예외처리를 진행하지 않는다고 명시적으로 선언할 때 사용됩니다. noexcpet를 통해 성능 향상을 얻을 수 있습니다.
mutable mutable 키워드가 들어간 변수는 const 함수 내에서도 값을 변경할 수 있다. explicit explicit 키워드는 묵시적 형변환을 방지하기 위해 멤버 함수에서 사용된다.
delete, default 키워드에 대해 알아봅시다.
생성자 멤버 초기화 리스트로 효율적으로 객체를 생성해봅시다.
멤버 함수안의 스태틱 변수는 일반 멤버 스태틱 변수와 초기화되는 시점이 다릅니다.
객체 배열을 생성할 때 문제되는 Fails Sharing을 방지하기 위해 alignas()를 사용해봅시다.
객체의 정확한 크기는 메모리 얼라이먼트 룰에 의해 결정됩니다.
extern는 external link, static은 internal link를 가지는 키워드다.
constexpr은 const가 될 수 있지만, const는 constexpr가 될 수 없다.
헤더파일의 정체
R-value의 자잘한 팁과 주의사항
좌측값과 우측값 그리고 std:move()의 활용
가상 테이블의 원리와 상속에 따른 객체 구조
weak_ptr은 shared_ptr과 함께 사용할 수 있는 스마트 포인터다.
비슷하지만 차이가 있는 셋의 특징을 알아보자.
유니크포인터(unique_ptr)는 move()연산을 이용한다.
공유포인터(shared_ptr)은 auto_ptr을 대체하는 가비지컬렉션(GC) 기능이 구현된 포인터이다.
기존의 고대 C++는 2개의 값을 하나로 묶을 땐 std::pair을 사용했는데 단점으론 최대 2개밖에 못 묶엇다.하지만 tuple은 2개 이상의 값을 하나로 묶을 수 있다.즉, 3가지 이상의 타입을 묶을 수도 있다는 소리다.
std::tie의 개념