스마트 포인터(5)
-
C++ 후행 반환 타입(Suffix Return Type) - 9. 실전 활용 예시
9. 실전 활용 예시후행 반환 타입은 단순히 문법적인 대안이 아니라, 실제 프로젝트와 라이브러리 설계에서 효율적으로 사용되는 도구입니다. 특히 표준 라이브러리, 템플릿 기반 유틸리티 함수, 메타프로그래밍 등에서 자주 활용됩니다.✅ 표준 라이브러리 내 사용 사례C++ 표준 라이브러리에서는 복잡한 타입이나 표현식 기반의 반환 타입을 명확하게 정의하기 위해 후행 반환 타입을 자주 사용합니다.예시: std::transform_reduce (C++17)template auto transform_reduce(InputIt1 first1, InputIt1 last1, InputIt2 first2, T init) -> decltype(init + (*first1) * (*first2));이 함수는 두 범위의 곱셈..
2025.03.25 -
모던 C++(Modern C++)의 정의와 주요 특징
1. 모던 C++이란?모던 C++(Modern C++)은 C++11 이후의 표준(C++11, C++14, C++17, C++20, C++23)을 기반으로 하는 프로그래밍 스타일과 기능을 의미합니다.기존 C++98과 C++03의 한계를 개선하여 안전성(Safety), 성능(Performance), 유지보수성(Maintainability), 표현력(Expressiveness)을 높이는 데 중점을 두고 있습니다.2. 모던 C++의 주요 특징모던 C++은 코드 간결성, 메모리 관리 자동화, 동시성 지원 강화, 성능 최적화 등의 목표를 위해 여러 기능을 추가했습니다.2.1 새로운 언어 기능모던 C++은 기존보다 더 효율적이고 안전한 프로그래밍을 가능하게 하는 기능들을 도입했습니다.1) 자동 타입 추론 (auto,..
2025.03.11 -
C++ 초급 - 12. 최신 C++ 기능 소개 (2 - C++14: 개선된 스마트 포인터)
📌 12.2 C++14: 개선된 스마트 포인터C++14에서는 C++11의 부족한 기능을 보완하고, 기존 문법을 개선하여 더 안전하고 직관적인 코드 작성이 가능하다.그중 가장 중요한 개선점 중 하나는 스마트 포인터(std::unique_ptr)의 생성 방식 개선이다.📌 1. std::make_unique를 활용한 안전한 스마트 포인터 생성🔹 (1) 기존 std::unique_ptr 생성 방식 (C++11)C++11에서는 std::unique_ptr을 생성할 때 new를 직접 사용해야 했다.💡 예제: C++11에서 std::unique_ptr 생성#include #include // 스마트 포인터 헤더 포함int main() { std::unique_ptr ptr(new int(42)); ..
2025.02.22 -
C++ 초급 - 12. 최신 C++ 기능 소개 (1 - C++11: 주요 기능 소개)
📌 12. 최신 C++ 기능 소개C++은 지속적인 발전을 거듭하며 새로운 기능이 추가되어 코드의 가독성을 높이고 성능을 최적화하는 기능들을 제공한다.초급 과정에서는 각 버전별 핵심 기능을 간단히 이해하는 데 초점을 맞춘다.📌 12.1 C++11: 주요 기능 소개C++11은 C++의 가장 큰 변화 중 하나로, 타입 추론, 메모리 관리, 이동 시멘틱스 등 코드의 안전성과 효율성을 향상시키는 기능이 추가되었다.📌 1. auto와 decltype을 활용한 타입 추론🔹 (1) auto를 활용한 타입 자동 유추변수의 타입을 컴파일러가 자동으로 추론.타입을 명확히 알 필요가 없을 때 유용.💡 예제: auto 사용법#include #include int main() { auto num = 10; ..
2025.02.22 -
C++ 초급 - 1. C++ 소개 및 개발 환경 설정 (2 - C++ 표준 버전 개요)
1.2 C++ 표준 버전 개요C++는 지속적인 발전을 통해 새로운 기능을 추가하고 최적화를 거듭해 왔다. 각 표준 버전별 주요 변화를 살펴보자.C++ 표준 버전별 주요 변화C++98 (최초 표준화, 기본적인 OOP 기능)C++98은 1998년에 ISO(국제표준화기구)에서 공식적으로 표준화한 최초의 C++ 버전이다.이전까지는 C++ 언어가 명확한 표준 없이 다양한 컴파일러에서 구현되었으나, C++98을 통해 통일된 기능이 정의되었다.주요 특징객체지향 프로그래밍(OOP) 개념 정립캡슐화, 상속, 다형성 등의 객체지향 기능을 공식적으로 포함STL (Standard Template Library)vector, map, set 등 주요 컨테이너 제공algorithm, iterator 등의 표준 라이브러리 포함예외..
2025.02.12