반응형

move semantics 2

C++ push_back과 emplace_back 차이

std::vector에 object를 넣을 때 push_back과 emplace_back 중 무엇을 써야 하는지 자주 고민하게 됩니다.많은 글에서 emplace_back이 더 빠르다고 설명하지만, 실무 코드에서는 이 문장만 기억하면 오히려 잘못된 선택을 하기 쉽습니다.emplace_back은 magic optimization이 아니라 container 내부에서 object를 직접 construct할 수 있게 해주는 API입니다. push_back과 emplace_back의 차이는 빠르고 느림보다, 이미 만들어진 object를 넣는가 아니면 container 안에서 바로 만들 것인가에 있습니다. 이번 글에서는 C++17 기준으로 push_back과 emplace_back이 어떤 상황에서 copy, move..

C++/Concepts 2026.07.09

C++ std::move는 진짜 객체를 이동시킬까?

C++을 공부하다 보면 std::move라는 표현을 자주 만나게 됩니다.이름만 보면 객체를 어딘가로 “이동”시키는 함수처럼 보입니다.하지만 실제로 std::move는 객체를 직접 이동시키지 않습니다.조금 이상하게 들릴 수 있지만, 이 개념을 정확히 이해해야 C++의 move semantics, smart pointer, 성능 최적화, 객체 생명주기를 제대로 다룰 수 있습니다.이번 글에서는 std::move가 실제로 무엇을 하는지, 그리고 실무에서 어떤 점을 조심해야 하는지 정리해보겠습니다. 1. lvalue와 rvalue 간단 정리std::move를 이해하려면 lvalue와 rvalue를 알아야 합니다.간단히 말하면 다음과 같습니다.구분의미예시lvalue이름이 있고 다시 접근할 수 있는 값변수rvalue..

C++/Concepts 2026.06.12
반응형