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 λ¬Έ μ΅μ μ μ λμ§λ λ¬Έ
- μ΅μ μ νμ
'π¨π»βπ» 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 |
μ νλ κ² λ³΄λ€ λ«κ² μ§
ν¬μ€ν μ΄ μ’μλ€λ©΄ "μ’μμβ€οΈ" λλ "ꡬλ ππ»" ν΄μ£ΌμΈμ!