전체 보기207 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. Modern C++ : C-Style static function (98, 11) C-Style 정적 함수 (static function) 개요C-Style static 함수는 선언된 소스 파일 내에서만 접근할 수 있는 내부 연결(internal linkage)을 갖는 함수입니다. 즉, 다른 소스 파일에서는 이 함수를 호출할 수 없으며, 마치 해당 파일의 비공개(private) 헬퍼 함수처럼 동작합니다. 이를 통해 전역 이름 공간(global namespace)의 오염을 방지하고, 여러 파일에서 동일한 이름의 함수를 사용하더라도 이름 충돌(name collision)을 피할 수 있습니다. C++ 버전별 주요 키워드 도입 시기C++98 이전 (C언어로부터 계승): static 키워드를 사용하여 파일 범위의 함수와 변수에 내부 연결을 지정하는 기능은 C언어에서부터 존재했으며, C++ 초기.. 2025. 8. 8. Modern C++ : static local variables (98, 11) 정적 지역 변수 : Static Local Variables 개요C++에서 함수 내부에 static 키워드를 사용하여 선언된 변수를 정적 지역 변수(Static Local Variable)라고 합니다. 이 변수는 일반적인 지역 변수와 달리, 프로그램이 시작될 때 생성되어 종료될 때까지 파괴되지 않으며, 함수 호출이 끝나도 그 값을 계속 유지합니다. C++ 버전별 주요 키워드 도입 시기C++98: static 키워드 자체는 C++ 초기 버전부터 존재했으며, 정적 지역 변수의 개념도 이때부터 사용되었습니다.C++11: 정적 지역 변수의 초기화가 스레드에 안전(thread-safe)하도록 보장되었습니다. 여러 스레드에서 동시에 해당 함수에 접근하더라도 변수는 정확히 한 번만 초기화됩니다. 내용 설명정적 지역 .. 2025. 8. 7. Modern C++ : const vs constexpr (98, 11, 14, 17, 20) 상수와 상수 표현식 : const vs constexpr 개요C++에서 const와 constexpr는 모두 상수를 정의하는 데 사용되지만, 초기화 시점과 컴파일 타임 평가 여부에서 중요한 차이가 있습니다. const는 런타임에 초기화될 수 있는 읽기 전용 변수를 선언하는 반면, constexpr는 컴파일 타임에 값이 결정되는 진정한 의미의 상수를 선언하여 컴파일러 최적화와 타입 시스템에 더 많은 정보를 제공합니다. C++ 버전별 주요 키워드 도입 시기C++98: const 키워드를 사용하여 읽기 전용 변수를 선언했습니다.C++11: constexpr 키워드가 도입되어, 변수나 함수가 컴파일 타임에 평가될 수 있음을 명시적으로 나타낼 수 있게 되었습니다.C++14: constexpr 함수의 제약이 완화되.. 2025. 8. 6. Modern C++ : type conversions (11, 14, 17, 20) 타입 변환 : type conversions 개요본 문서에서는 C++11 이후에 도입된 다양한 타입 변환 기능들을 한눈에 살펴보고, 각 기능의 사용법과 장단점을 제시합니다. C++ 버전별 주요 키워드 도입 시기C++11auto, Uniform Initialization ({})static_cast(명시적 변환) 강화C++14함수 반환형 autoC++17구조적 바인딩 (Structured Binding)C++20std::bit_cast (헤더 ) 내용 설명auto변수 선언 시 타입을 컴파일러가 추론코드 가독성 향상 및 복잡한 타입 축소Uniform Initialization중괄호 {} 를 사용해 초기화직접 리스트 초기화(direct list-init)에서 narrowing 금지 규칙 적용축소 변환 (nar.. 2025. 8. 5. 이전 1 ··· 5 6 7 8 9 10 11 ··· 23 다음