개발83 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. Modern C++ : designated initializers (20) 지정 이니셜라이저 : designated initializers 개요C++20부터 구조체와 배열 등에 지정 이니셜라이저를 사용하여 멤버 이름을 명시적으로 지정해 초기화할 수 있습니다.이를 통해 멤버 순서와 관계없이 원하는 멤버만 선택적으로 초기화할 수 있으며, 지정하지 않은 멤버는 기본값으로 초기화됩니다. C++ 버전별 주요 키워드 도입 시기C++20: P1008R1 제안에 따라 지정 이니셜라이저 도입 내용 설명구조체, 배열, 클래스 애그리게이트에 사용 가능.멤버 = 값 형식으로 초기화하며, 초기화 순서와 정의 순서는 무관지정하지 않은 멤버는 기본값(0 또는 디폴트 생성자)으로 초기화동일 멤버를 중복 지정 시 컴파일 에러 발생 예제 코드#include #include struct User { en.. 2025. 8. 4. Modern C++ : enum concepts (11, 20) enum concepts개요C++20 Concept와 열거형(Enum)을 통합하여 타입 안전성과 가독성을 동시에 확보하는 방법을 설명합니다. C++ 버전별 주요 키워드 도입 시기C++11: enum classC++20: concept 내용 설명C++20에서 도입된 concept는 템플릿 타입 매개변수에 대한 제약 조건을 명시적으로 정의할 수 있습니다. 열거형 전용 EnumType concept를 정의하면, 템플릿 함수가 오직 열거형 타입만을 허용하도록 컴파일 타임에 검증합니다.#include #include // 열거형 타입 전용 Concepttemplateconcept EnumType = std::is_enum_v;// 열거형 값을 기본 정수형으로 변환하는 제네릭 함수templateconstexpr a.. 2025. 8. 3. Modern C++ : enum vs enum class (98, 11) enum vs enum class 개요C++98의 전통적 enum과 C++11에서 도입된 enum class(Scoped enum)를 비교하여, 각 방식의 특징, 장단점 및 사용 시 유의점을 정리한다. C++ 버전별 주요 키워드 도입 시기C++98: enumC++11: enum class Name : UnderlyingType (기반 타입 지정) 내용 설명전통적 enum (C++98)암시적 정수 변환 허용 → 타입 안전성 부족열거자 이름이 전역 범위 오염 → 충돌 위험기반 타입 지정 불가 (기본 int)enum class (C++11)암시적 변환 금지 → 강한 타입 체킹열거자 Scoped → Color::RED 형태로 사용기반 타입 지정 가능 (enum class Color : uint8_t)static.. 2025. 8. 2. Modern C++ 둘러보기 클래식 C++에 익숙해서 모던 C++ 변화 시기에 바닥에 뭍어두고 Rust 학습을 했었는데 흐릿해지니 충격도 줄어드는 것 같다.C++ 26에서 큰 변화가 있을거라는데, 메모리 안정성을 높인다니. 여전하다.그래도 20대 전후를 함께한 친구인데 언어 비교를 위해 다시 파내본다. Modern C++ Features (C++11, C++14, C++17, C++20, C++23)이 문서는 C++11부터 C++23까지 표준에 도입된 주요 언어 및 라이브러리 기능을 정리하고, 예제 코드를 통해 사용법을 설명합니다. 목차C++11auto 키워드범위 기반 for 문스마트 포인터 (std::unique_ptr, std::shared_ptr)nullptr람다 표현식이동 시맨틱 (rvalue 참조, std::move)기타:.. 2025. 8. 1. 윈도우11에서 VSCode GitBash 터미널을 zsh 프롬프트 처럼 만들기 GitBash 터미널을 제트쉘(zsh)처럼 활용하려면 몇 가지 간단한 설정이 필요합니다.먼저, 256 xterm 색상을 참고하여 터미널에서 컬러 표현 방식을 이해하는 것이 좋습니다. 이는 색상 구성과 시각적 환경을 조정하는 데 도움이 됩니다.https://github.com/gawin/bash-colors-256 git bash 터미널에서 컬러를 표시해 보려면,아래 내용을 입력해보세요.echo -e "\033[38;5;001m\033[48;5;123m This is red text on a background sky color. \033[0m" 터미널을 화려한 색으로 꾸며보고 싶지 않나요?이제 git bash 설정 파일을 열고 zsh 처럼 깔끔하게 만들어 봅시다. 먼저 자신의 유저 디렉토리로 이동합니다... 2024. 11. 27. 이전 1 2 3 4 ··· 10 다음