전체 보기157 Modern C++ : rvalue reference (98, 11) rvalue reference의 이해원본 글http://cpplover.blogspot.jp/2009/11/rvalue-reference_23.html lvalue, rvalueC에서의 lvalue, rvalue의 차이는 대입 연산자의 오른쪽에 있는지 왼쪽에 있는지의 차이 뿐이었다. 즉 left hand value, right hand value.하지만 C++에서의 lvalue, rvalue는 그와는 완전히 다른 개념이다.lvalue는 명시적으로 실체가 있는 명명된 객체.rvalue는 일시적으로 생성된 무명의 객체. C++에서의 rvalue, lvalue의 예struct S {};int func() { return 0;};int main(){ int i=0; i; // lvalue .. 2025. 8. 16. Modern C++ : lvalue rvalue reference (98, 11) LValue and RValue References (98, 03, 11) 개요C++에서 모든 표현식(expression)은 "LValue" 또는 "RValue"라는 두 가지 기본 속성 중 하나를 가집니다. 이 둘을 구분하는 것은 함수 오버로딩, 이동 의미론(move semantics), 완벽한 전달(perfect forwarding)과 같은 C++의 고급 기능을 이해하고 효율적인 코드를 작성하는 데 매우 중요합니다.LValue (Locator Value): 메모리 상의 위치를 가지며, 이름으로 참조할 수 있는 객체입니다. 등호(=)의 왼쪽에 올 수 있습니다. (예: 변수)RValue (Right Value): 임시적인 값으로, 메모리 상의 특정 위치를 가지고 있지 않습니다. 등호(=)의 오른쪽에만 올 .. 2025. 8. 15. Modern C++ : dynamic heap memory allocation (98, 11, 14) 동적 힙 메모리 할당 (Dynamic Heap Memory Allocation) 개요C++에서 메모리는 크게 스택(Stack)과 힙(Heap) 두 영역으로 나뉩니다. 동적 메모리 할당은 프로그램 실행 중에(런타임) 필요한 만큼의 메모리를 힙 영역에서 할당받아 사용하는 방식입니다. 컴파일 시점에 크기를 알 수 없거나, 객체의 생명주기를 특정 범위(scope)를 넘어서까지 제어하고 싶을 때 유용합니다.반면, 함수 내에 선언된 일반 변수들은 스택에 저장되며, 해당 함수가 종료되면 자동으로 메모리에서 해제됩니다. 동적으로 할당된 힙 메모리는 프로그래머가 delete 키워드를 사용하여 명시적으로 해제하기 전까지 계속 유지되므로, 메모리 관리에 각별한 주의가 필요합니다. C++ 버전별 주요 키워드 도입 시기C++9.. 2025. 8. 14. Modern C++ : pointer and address (98, 11) 포인터와 주소 (Pointer and Address) 개요C++에서 포인터(pointer)와 주소(address)는 메모리를 직접 제어하고 데이터를 효율적으로 관리하기 위한 핵심 개념입니다. 모든 변수는 메모리 상의 특정 위치에 저장되며, 이 위치를 나타내는 값이 바로 '주소'입니다. '포인터'는 이러한 메모리 주소를 값으로 가지는 특별한 변수입니다.이 문서를 통해 변수의 주소를 얻는 방법, 포인터를 선언하고 사용하는 방법, 그리고 포인터를 통해 원본 변수의 값을 변경하는 '역참조(dereferencing)'에 대해 알아봅니다. C++ 버전별 주요 키워드 도입 시기C++98/03: 포인터의 기본적인 개념(*, &)이 이미 존재했습니다.C++11nullptr: 0이나 NULL 대신 포인터가 아무것도 가리키.. 2025. 8. 13. Modern C++ : const reference and value semantics (98, 11) const 참조와 값 의미론 (const Reference and Value Semantics) 개요C++에서 함수에 인자를 전달하는 방식은 프로그램의 성능과 안정성에 큰 영향을 미칩니다. 특히 const 참조를 사용하는 것은 C++ 프로그래머가 반드시 이해해야 할 중요한 개념입니다. 이 문서는 값에 의한 전달(pass-by-value)과 참조에 의한 전달(pass-by-reference), 그리고 const 참조를 사용한 전달 방식의 차이점과 장점을 설명합니다.값 의미론 (Value Semantics): 함수 호출 시 인자의 복사본을 만들어 전달합니다. 원본 데이터는 함수 내에서 변경되지 않으므로 안전하지만, 객체가 클 경우 복사 비용이 발생하여 성능 저하의 원인이 될 수 있습니다.참조 의미론 (Ref.. 2025. 8. 12. Modern C++ : string vs std::string vs std::array<char, N> (98, 11, 17) 문자열 : c-style string vs std::string vs std::array vs std::string_view 개요C++에서는 문자열을 다루는 여러 가지 방법을 제공합니다. 이 문서에서는 전통적인 C-style 문자열과 모던 C++에서 권장되는 std::string, 고정 크기 문자열을 위한 std::array, 그리고 C++17에 추가된 std::string_view의 특징과 차이점을 비교 설명합니다. C++ 버전별 주요 키워드 도입 시기C++98: std::string (Standard Template Library의 일부로 표준화)C++11: std::array (고정 크기 배열 컨테이너)C++17: std::string_view (문자열에 대한 소유권 없는 뷰) 내용 설명1. C-s.. 2025. 8. 11. 쿠팡 알바 : 야탑1캠프 신호수3 소문으로만 듣던 쿠팡 알바를 다녀왔다.주간 신호수 업무였는데 차가 몰릴때는 다소 번잡하고 조심해야하지만 갑작스런 육체 노동은 없는 직무였다. 차가 없을 때는 의자에 앉아 있어도 되지만 교육(?) 및 인수인계 받은대로, 신호수3의 제1수칙 : 충돌 방지 (전자 호루라기 지급)(신호수3의 자리는 1층 입구 안쪽의 빨간 부스 바로 옆에서 이동 정리, 보고, 문의) 그리고 인수인계 받은 주요 내용 - 큰 트럭만 직접 상대한다. - 좌측 깜박이 트럭은 바로 보내준다. - 1층 방문한 트럭은 바로 보내준다. - 부자재, RT, 5층 방문한 트럭은 바로 보내준다. - 3, 4층 상하차 확인후 '차량번호', '3,4층', '상하차' 확인하여 자리 있는지 무전으로 물어본다. (사실 시작부터 자리가 없을리 없지만 인수인.. 2025. 8. 11. Modern C++ : array vs std::array (98, 11) 배열 : C-style array vs std::array 개요C++는 C 언어에서 파생되었기 때문에 C-style 배열을 지원합니다. 하지만 C-style 배열은 포인터로의 암시적 변환(decay) 특성 때문에 크기 정보를 잃어버리기 쉽고, 경계 검사를 지원하지 않아 메모리 관련 버그를 유발할 수 있습니다. C++11부터 도입된 std::array는 이러한 단점을 보완한 현대적인 C++의 고정 크기 배열 컨테이너입니다. 이 문서에서는 두 배열 타입의 차이점과 std::array의 장점을 설명합니다. C++ 버전별 주요 키워드 도입 시기C++98/03: C-style 배열 사용.C++11: std::array 도입. 내용 설명C-style array특징:컴파일 시간에 크기가 결정되는 고정 크기 배열입니다.. 2025. 8. 10. Modern C++ : anonymous namespace (98, 11, 17) 익명 네임스페이스 : anonymous namespace 개요익명 네임스페이스(Anonymous Namespace)는 이름 없는 네임스페이스를 정의하여 내부의 변수나 함수를 해당 파일 내에서만 사용하도록 제한하는 기능입니다. 이는 C 스타일의 static 키워드를 대체하여 외부 연결(External Linkage)을 막고 내부 연결(Internal Linkage)을 갖도록 하는 현대적인 C++ 방식입니다. C++ 버전별 주요 키워드 도입 시기C++98namespace 키워드 도입 : 익명 네임스페이스 (소스 파일 단위 가시성 제공)static 키워드 : 전역 static 함수·변수 (링크 단계에서 내부 연결성 제공)C++11constexpr 변수 (컴파일 타임 상수)C++17inline constexpr.. 2025. 8. 9. 이전 1 2 3 4 5 ··· 18 다음