[c++]'전문가를 위한 C++17'을 공부하며 정리(ing...)👨🏻💻 programming/◽ c, c++2022. 5. 16. 17:37
Table of Contents
728x90
1. 함수 매개변수와 마찬가지로 템플릿 매개변수에 기본값을 지정할 수 있다.
template<typename T, typename Container = std::vector<std::optional<T>>>
class Pinko { ... }
- optional <optional>에 정의돼 있으며, 어떤 타입의 값이 있거나 없을 수 있는 것을 표현한다.
2. 템플릿 매개변수로 템플릿을 받으려면 템플릿 템플릿 매개변수(template template parameter)라는 특수 매개변수를 사용해야 한다.
- 템플릿 템플릿 매개변수를 지정하는 방식은 일반 함수의 매개변수에 함수 포인터를 지정하는 방식과 비슷하다.
- 정의한 컨테이너(템플릿 선언부: template<typename E, typename Allocator = std::allocator<E>>class vector)를 클래스 이름(vector)을 매개변수 이름 (Contatiner)으로 바꾼다.
template<typename E, typename Allocator = std::allocator<E>>
class vector{};
tmeplate<typename T, template<typename E, typename Allocator = std::allocator<E>>
class Container = std::vector>
class Grid {};
3. 익셉셥(exception: 예상치 못한 예외적인 상황에 대처하는 기능)
- 익셉션 매니니즘은 에러가 발생한 코드는 익셉션을 던지고(throw), 이를 처리하는 코드는 발생한 익셉션을 받아서 처리(catch)하는 식으로 작동한다. 어떤 코드가 익셉션을 던지면 프로그램의 정상 실행 흐름을 잠시 멈추고 익셉션 핸들러 (exception handler:예외 처리기)로 제어권을 넘긴다. 이 때 핸들러의 위치는 다양하다.
(1). try/catch 문 발생한 익셉션을 처리하는 문
(2). throw 문 익셉션을 던지는 문
- 익셉션 타입
728x90
'👨🏻💻 programming > ◽ c, c++' 카테고리의 다른 글
(c++17) 전처리 지시자, if-switch 이니셜라이저, __func__, 구조적 바인드 (0) | 2022.08.04 |
---|---|
[C++] 멀티 프로그래밍(전문가를 위한 C++ , Chapter 27 정리 ) (0) | 2022.05.16 |
[C++] 제네릭 알고리즘 모음 (0) | 2022.05.16 |
[C++] std::string_view 클래스 (0) | 2022.02.09 |
[C++] 연산자 오버로딩 프로토타입 & 한계 (0) | 2022.02.08 |
@핑크코냥 :: 핑크코냥
안 하는 것 보다 낫겠지
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!