본문 바로가기

개발122

Modern C++ : std::numeric_limits (98, 11, 17) 수치 한계와 특성 (Numeric Limits with std::numeric_limits) 개요std::numeric_limits는 C++ 표준 라이브러리의 헤더에 정의된 템플릿 클래스로, 기본 숫자 타입들의 속성과 한계를 조회하는 데 사용됩니다. 이 클래스를 통해 타입의 최대값, 최소값, 정밀도 등 다양한 수치적 특성을 컴파일 타임에 얻을 수 있습니다. C++ 버전별 주요 키워드 도입 시기C++98: 기본 std::numeric_limits 템플릿 클래스 도입C++11: lowest(), max_digits10 등 추가 멤버 함수 도입C++17: is_iec559를 통한 IEEE 754 부동소수점 준수 여부 확인 내용 설명1. 기본 사용법std::numeric_limits는 템플릿 클래스로, 특정 .. 2025. 9. 7.
Modern C++ : std::chrono 날짜 및 시간대 (11, 14, 17, 20) 날짜 및 시간대 (Date and Timezone with std::chrono) 개요C++20의 std::chrono 라이브러리는 강력한 날짜 및 시간대 처리를 위한 기능을 제공합니다. 이 문서에서는 날짜 리터럴, 캘린더 연산, 시간대 변환 등에 대해 설명합니다. C++ 버전별 주요 키워드 도입 시기C++11: 기본적인 std::chrono 기능 (시간 측정 중심)C++14: 사용자 정의 리터럴 지원 (h, min, s, ms, us, ns)C++17: 파일 시스템 시간 처리 개선C++20: 캘린더 및 시간대 지원 (std::chrono::year, month, day, time_zone 등) 내용 설명1. 날짜 표현year, month, day 클래스를 사용하여 타입 안전한 날짜 표현날짜 리터럴: 2.. 2025. 9. 6.
Modern C++ : std::chrono 시간 측정 (11, 14, 17, 20) 시간 측정 (Time Measurement with std::chrono) 개요std::chrono는 C++11에서 도입된 시간 관련 연산을 위한 라이브러리로, 정밀한 시간 측정, 시간 지연, 시간 간격 계산 등을 위한 다양한 유틸리티를 제공합니다. 이 라이브러리는 타입 안전성과 정밀한 시간 제어가 필요한 애플리케이션에 적합합니다. C++ 버전별 주요 키워드 도입 시기C++11: std::chrono 네임스페이스, std::chrono::duration, std::chrono::time_point, std::chrono::system_clock, std::chrono::steady_clock, std::chrono::high_resolution_clockC++14: 시간 리터럴 지원 (1s, 100ms .. 2025. 9. 5.
Modern C++ : std::mt19937 (11, 14, 17, 20) 랜덤 숫자 생성 (Random Number Generation) 개요C++에서의 랜덤 숫자 생성은 헤더를 통해 제공되는 다양한 유틸리티를 사용하여 구현할 수 있습니다. C++11부터 도입된 이 라이브러리는 예측 가능한 의사 난수 생성기와 다양한 분포를 제공합니다. C++ 버전별 주요 키워드 도입 시기C++11: 헤더, std::random_device, std::mt19937, std::uniform_int_distribution 등 도입C++14: std::make_unique를 사용한 랜덤 엔진 생성이 용이해짐C++17: std::sample 알고리즘 추가C++20: std::uniform_random_bit_generator 개념(concept) 도입 내용 설명C++에서 랜덤 숫자 생성을 위해서.. 2025. 9. 4.
Modern C++ : std::filesystem std::filesystem 개요std::filesystem은 C++17에서 도입된 파일 시스템 라이브러리로, 파일과 디렉토리 조작을 위한 다양한 기능을 제공합니다. 이 라이브러리는 플랫폼 독립적인 방식으로 파일 시스템을 다룰 수 있게 해주며, 경로 조작, 파일 속성 조회, 디렉토리 순회 등의 작업을 수행할 수 있습니다. C++ 버전별 주요 키워드 도입 시기C++17: std::filesystem 네임스페이스와 주요 클래스들(path, directory_iterator 등)이 표준 라이브러리에 추가C++20: std::filesystem::path에 operator (three-way comparison) 추가 내용 설명std::filesystem은 다음과 같은 주요 기능을 제공합니다:경로 조작: pat.. 2025. 9. 3.
Modern C++ : std::ostream & std::istream (98, 11, 17, 20) std::ostream & std::istream 개요std::ostream과 std::istream은 C++ 표준 라이브러리에서 제공하는 입출력 스트림 클래스로, 각각 출력과 입력을 담당합니다. 이들은 형식화된 입출력과 형식화되지 않은 입출력 모두를 지원하며, 파일, 메모리 버퍼, 표준 입출력 등 다양한 소스/대상과 연동할 수 있습니다. C++ 버전별 주요 키워드 도입 시기C++98: 기본 std::ostream, std::istream 클래스 도입C++11: 이동 생성자/대입 연산자 추가, noexcept 지정자 추가C++17: std::byte 지원 추가C++20: std::format과의 통합, synchronized_ 접두사 출력 함수 추가 내용 설명std::ostream과 std::istrea.. 2025. 9. 2.
Modern C++ : std::string_view (17, 20) std::string_view 개요std::string_view는 C++17에서 도입된 문자열 뷰 클래스로, 문자열 데이터에 대한 읽기 전용 뷰를 제공합니다. 메모리 할당 없이 문자열을 참조할 수 있어 성능이 중요한 상황에서 유용하게 사용됩니다. C++ 버전별 주요 키워드 도입 시기C++17: std::string_view가 표준 라이브러리에 추가됨C++20: std::string_view에 starts_with(), ends_with() 등의 편의 함수 추가 내용 설명std::string_view는 다음과 같은 특징을 가집니다:메모리 할당 없음: 문자열 데이터를 소유하지 않고 참조만 함가볍고 빠름: std::string보다 가볍고 복사 비용이 저렴유효성 주의: 참조하는 문자열의 수명이 string_vi.. 2025. 9. 1.
Modern C++ : Small String Optimization (SSO) Small String Optimization (SSO) 개요Small String Optimization(SSO)은 std::string 클래스에서 짧은 문자열을 저장할 때 힙 할당을 피하고 스택 메모리를 활용하여 성능을 최적화하는 기법입니다. 이 기법은 문자열의 길이가 특정 임계값(SSO capacity) 이내일 때 적용됩니다. C++ 버전별 주요 키워드 도입 시기C++98: std::string의 구현 세부사항으로 SSO가 도입되기 시작 (표준화된 사양은 아님)C++11: 이동 생성자/대입 연산자와 함께 SSO 최적화가 더욱 중요해짐C++17: std::string_view 도입으로 SSO와 함께 사용할 때의 최적화 기회 증가 내용 설명SSO는 짧은 문자열을 다룰 때 다음과 같은 이점을 제공합니다:.. 2025. 8. 31.
Modern C++ : std::string (98, 11, 17, 20) std::string 개요std::string은 C++ 표준 라이브러리에서 제공하는 문자열 클래스로, 문자열 조작을 위한 다양한 기능을 제공합니다. 메모리 관리를 자동으로 처리하며, 안전하고 편리한 문자열 처리가 가능합니다. C++ 버전별 주요 키워드 도입 시기C++98: 기본 std::string 클래스 도입C++11: 이동 생성자/대입 연산자, shrink_to_fit() 등 추가C++17: string_view와의 상호작용 추가, 비멤버 std::size() 등 추가C++20: starts_with(), ends_with() 메서드 추가 내용 설명std::string은 다음과 같은 주요 특징을 가집니다:동적 메모리 관리: 문자열 길이에 따라 자동으로 메모리 할당/해제문자열 조작: 다양한 멤버 함수를.. 2025. 8. 30.