2025/06/10 2

Effective Modern C++ #7 객체 생성 시 괄호()와 중괄호{}를 구분하라.

현대적 C++에 적응하기현대적 C++ 에서는 auto, smart pointer, move semantics, lambda, thread 등 뛰어난 기능을 제공한다. 해당 챕터에서 아래 질문에 대한 답변을 얻을 수 있다.객체를 생성할 때, 괄호보다 중괄호 사용해야하는 경우는 언제인가?별칭 선언이 typedef 보다 나은 이유는 무엇인가?constexpr은 const 와 어떻게 다른가?const 멤버 함수와 쓰레드 안전성 관계는 무엇인가?7. 객체 생성 시 괄호()와 중괄호{}를 구분하라.C++11 부터 다양한 초기값 지정 방법이 존재한다.int x(0); // 괄호int y = 0; // 등호int z{0}; // 중괄호크게 위와 같이 괄호, 등호, 중괄호를 사용하는 방법으로 나눌 수 있다. (int ..

dev/C++ 2025.06.10

Effective Modern C++ #13 iterator 보다 const_iterator 를 선호하라

13. iterator 보다 const_iterator 를 선호하라const_iterator 는 const 를 가리키는 포인터의 stl 버전이다.반복자가 가리키는 항목을 수정할 필요가 없을 때, 웬만하면 반복자에서 const_iterator 를 사용하는 것이 바람직하다.웬만하면 const 를 사용하라는 관행과 동일한 맥락이다. C++98 에서도 const_iterator 는 존재했으나, 사용하기 번거로웠다.정적 캐스팅을 사용해야하는데, const 아닌 컨테이너에서 const_iterator 를 얻는 간단한 방법이 없어서이다. C++98 const_iterator 사용 예시)#include #include typedef std::vector::const_iterator ConstIter;int main()..

dev/C++ 2025.06.10