Posts

Post contents

C++ RVO, NRVO에 대해서 알아보자.

C++ RVO(Return Value Optimization), NRVO(Named Return Value Optimization)

Intro C/C++를 사용하는 이유 중 하나로는 빠른 속도와 커스터마이징 가능한 자언관리 등의 최적화를 위해서 사용할 것이다. 이러한 부분에서 코드를 개발하면서, 컴파일러단에서 부터 코드를 최적화 시켜서 더욱 바르게 실행 할 수 있도록 하려는 노력들이 많이 있다. 이처럼 C/C++ 에서는 내가 원하는대로 코드를 작성하더라도 컴파일러에의해 최적화 ...

C++ 인터페이스 설계는 제대로 쓰기엔 쉽게, 엉터리로 쓰기엔 어렵게 하자.

Make interface design easy to use properly and difficult to use poorly.

Make interface design easy to use properly and difficult to use poorly C++을 개발하면서 크로미움과 같은 큰 프로젝트 뿐만아니라 개인이 만드는 작은 프로젝트까지 모든 분야에서는 쉽게 볼 수 있는것이 인터페이스이다. 함수도 인터페이스고, 클래스, 템플릿 또한 인터페이스이다. 이처럼 쉽게 찾아 ...

C++ 자원 관리 클래스에서 관리되는 자원은 외부에서 접근 할 수 있도록 하자.

Managed resource by the resource management class be accessible from the outside.

Managed resource by the resource management class be accessible from the outside. 스마트 포인터를 사용할 때 조심해야 하는 점중 하나가 형 변환이다. 형 변환을 잘 사용한다면 매끄러운 자원 접근이 가능 하도록 도와주지만 잘못하다간 자원이 다 노출되어 버릴 수 도 있다. int days...

C++ 객체의 모든 부분을 빠짐없이 복사하자.

Let's make a full copy of the object.

Let’s make a full copy of the object 많은 클래스 내부에는 복사 생성자와 복사 대입 연산자가 존재하는 경우가 있다. 이 둘을 통틀어 복사 함수라고 부르는데, 이 부분은 컴파일러에 의해 선언 없이도 혼자 만들어 질 수도 있다. 하지만 이러한 복사 함수를 사용 할 때 중요한점이 있는데, 자신의 복사 함수만을 사용해서는 안된...