<aside> π‘
cpp20
y m d h min s ms us ns미리컴νμΌλν€λμ νμ€ν
.cppmexport module NAME; .cppm μ νΈμΆκ°λ₯ν λͺ¨λμ λ»μΌλ‘, λͺ
μimport OTHER; .cppμ λ€λ₯Έ cppm(ν€λ) μ¬μ©μν μ, λͺ
μmodule NAME; .cpp μλ .cppmμ ꡬννλ€λ λ»μΌλ‘, λͺ
μmodule; κΈλ‘λ²λͺ¨λ νλκ·Έλ¨ΌνΈλλ¬κ°λ₯μ±κ³Ό κ°μμ± (μ°Έμ‘°μ»΄νμΌ κ°λ₯ & μ½λμ§μ μ¬μ© κ°λ₯)μλΈλͺ¨λ μμ€ν
(std.string.submodule) β . μ¬μ©λͺ¨λ νν°μ
(flydata:speed:accel)β : μ¬μ©cpp20μμ μ»΄νμΌλ¬ μλκ°μ μν κ°μ, λͺ μμ± κ°νλ¨
consteval μ¦μμμνκ° ν¨μconstinit μμμ΄κΈ°ν 보μ₯ β μ§μλ³μλ±μ μ΄μ§νΌ μ΄κΈ°ν μμ λ¬Έμ μμ, νμ§λ§ μ μ/μ μ λ³μμ κ²½μ° νΉν μ»΄νμΌνμ μ΄κΈ°ν 보μ₯μ΄ μ μ©ν¨| ν€μλ | μλ―Έ | μ¬μ© μμ | νΉμ§ |
|---|---|---|---|
constexpr |
μ»΄νμΌ νμμ κ³μ° | λ³μ, ν¨μ | κ°μ΄ μ»΄νμΌ νμμ κ²°μ λ¨ |
constinit |
μ΄κΈ°νλ μ»΄νμΌ νμμ | λ³μλ§ | λ°νμμ κ° λ³κ²½κ°λ₯ μΌλ° λ³μλ¨ |
consteval |
무쑰건 μ»΄νμΌ νμμ μ€ν | ν¨μλ§ | λ°νμ νΈμΆ λΆκ°, κ³μ° κ°μ |
using enumexplicit(bool) μ§μ[=] [=, this] β λλ€μΊ‘μ³λ μ§μλ³μλ‘ νμ , λ§΄λ² νμμ thisμΊ‘μ³[]<typename T>() { β¦ }; λλ€ννμ ν
νλ¦Ώconstexpr lambda λΉνκ°λ¬Έλ§₯ μ¬μ©μν(μΈμ)μλ λλ€μ μμ±μ β μνμλ λλ€ μμ±μ μ 곡μΆμ½ ν¨μν
νλ¦Ώ μ§μ
template<typename T> β auto λ‘ λ체3λ°©ν₯μ°μ°μ, μμΉ μ°μ£Όμ μ°μ°μ
<=><=>, == λΉκ΅μ°μ°μ μ€λ²λΌμ΄λ© κ°μν[[nodiscard("explain the reason")]][[likely]] [[unlikely]]λ²μκΈ°λ°-λ°λ³΅λ¬Έ β μ΄κΈ°μ μ¬μ© μ§μμ§μ μ΄κΈ°ν for ꡬ쑰체std::to_array(T*)std::erase(container, value) μ μν¨μ (μ λ ¬μ°κ΄, λΉμ λ ¬ 컨ν
μ΄λ λ―Έμ§μ)std::erase_if(container, pred) μ μν¨μ (μ λΆμ§μ)std::iterator::μ½μ
νΈstd::ssize(c) μ μν¨μ β (λΆνΈμλ) longlong // std::size(c) β size_tconceptμ μ½ννμrequires μꡬννμstd::μ½μ
νΈSTLλ°λ³΅μλ₯Ό νλ² λ μΆμννμ¬, μ’ λ ν¨μνμ€νμΌμ μΆκ΅¬
std::ranges::μ½μ
νΈstd::ranges::ꡬ체viewν΄λμ€std::ranges::ꡬ체viewν΄λμ€.ν¨μ() β 컨ν
μ΄λμ μ μ¬νκ² λ€λ£° μ μλλ‘std::ranges::μκ³ λ¦¬μ¦(+proj νλ‘μ μ
μ§μ) β λ³λ ¬μ€ν λ―Έμ§μstd::views::λ μΈμ§μ΄λ΅ν°(λ³νκΈ°) or ν©ν 리 β rangeμ κ°μ’
κΈ°λ₯ μ μ©bit_cast<>(T)
</aside>