[C++] 이동 시맨틱 : lvalue, rvalue, std::move
개요 안녕하세요. 이번 글에서는 C++11에서 도입된 이동 시맨틱(move semantics)에 대해 알아보겠습니다. 기존 C++에서는 객체를 다른 곳에 넘길 때 항상 복사가 일어났습니다. 그런데 곧 사라질 임시 객체까지 굳이 복사하는 것은 낭비입니다. …
개요 안녕하세요. 이번 글에서는 C++11에서 도입된 이동 시맨틱(move semantics)에 대해 알아보겠습니다. 기존 C++에서는 객체를 다른 곳에 넘길 때 항상 복사가 일어났습니다. 그런데 곧 사라질 임시 객체까지 굳이 복사하는 것은 낭비입니다. …
한국어로는 “~할 거야 / ~할 것이다” 하나로 말하지만, 영어의 미래 표현은 will과 be going to로 나뉩니다. 둘 다 미래를 가리키지만 뉘앙스가 다릅니다. 핵심 기준은 그 일을 지금 막 정했는가, 아니면 …
개요 안녕하세요. 이번 글에서는 C++의 스마트 포인터(smart pointer)에 대해 알아보겠습니다. C++에서 new로 할당한 메모리는 delete로 직접 해제해야 하는데, 해제를 빠뜨리거나 중간에 예외가 발생하면 메모리 누수(memory leak)가 생깁니다. 스마트 포인터는 이런 …
한국어로는 다 ‘~했다’지만 영어는 단순 과거와 현재완료를 구분합니다. 과거 시점이 분명하면 과거, 지금과 연결되면 현재완료 — 비교표와 헷갈리는 짝(been to vs gone to, for vs since)까지 정리합니다.
같은 ‘~해야 한다’라도 영어는 have to, must, need to, should, be supposed to로 강도와 뉘앙스가 다릅니다. 각 표현의 차이와 부정형(don’t have to vs must not)을 예문으로 정리합니다.