ืืกืึธ ืงืึทืืืื ืคึฟืึทืจ ืกืืึทื ืืขืจืืืืืืฉืึทื ืคืื ืื C ++ ืฉืคึผืจืึทื
ืืื ืื ืงืืืขื ืืืงืข ืฆืืืื ืืืฉืื, ืื ืืืืืืืืงื ืกืคึผืขืกืึทืคืึทืงืืืฉืึทื ืืืขื ืืืื ืืื ืืขืจ ืืื ืข ืคืื โโืคึผืจืืคึผืขืจืื ื ืืขื ืืึธืงืืืขื ื ืคึฟืึทืจ ืืจืืืกืืขืื, ืืื ืืืึธืก ืึทืจืืขื ืืืขื ืืืื ืืืจืืืขืงืึธืื ืืืืฃ ืจืขืืืงืฆืืข ืงืขืจืขืงืฉืึทื ืคืื ืืืืกืืืื ืขืจืจืึธืจืก ืืื ืืืคึผืึธืก. ืืื ืคืจื ื ืืืืขืืืขืจ, ืื ืจืืืึทืืืื ื ืืึธืงืืืขื ื ืืืขื ืืืื ืืขืฉืืงื ืฆื ISO ืคึฟืึทืจ ืืจืืืกืืขืื ืืื ืืขืจ ืื ืคืึธืจืืึทื ื ืึธืืขื ISO/IEC 14882:2020. ืืื ืืขืจ ืืขืจืืืืื, ืืขืจ ืงืืืืืขื ืืื ืฉืืื ืื ืืขืืืืื ืืจืืขืื ืืืืฃ ืื ืืืืึทืืขืจ C++23 ื ืึธืจืืึทื (C++2b) ืืื ืืืขื ืืึทืืจืึทืืื ืืขืืืขื ืึธืคึผืฆืืขืก ืืื ืืืื ืืืืึทืืขืจ ืืืืจืืืึทื ืืึทืืขืืขื ืืฉ.
- ืฆืืืขืืืืื "ืงืึทื ืกืขืคึผืฅ", ืืขืืคึผืืึทืืข ืืงืกืืขื ืฉืึทื ื, ืืืึธืก ืืึธืื ืืืจ ืฆื ืืขืคืื ืืจื ืึท ืืึทื ื ืคืื ืืขืืคึผืืึทืืข ืคึผืึทืจืึทืืขืืขืจ ืจืขืงืืืืจืขืืขื ืฅ ืืืึธืก, ืืื ืื ืฆืื ืืืคื ืขืืขื ืฆืืื, ืืึทืืจืขื ืขืฆื ืื ืืึทื ื ืคืื ืึทืจืืืืขื ืื ืืืึธืก ืงืขื ืขื ืืืื ืื ืืขื ืืืขื ืืื ืืืกืืขืจ ืคึผืึทืจืึทืืขืืขืจืก. ืื ืงืึทื ืกืขืคึผืก ืงืขื ืขื ืืืื ืืขืืืืื ื ืฆื ืืืกืืืืื ืืึทืืืฉืืงืึทื ืื ืืงืึทื ืกืืกืืขื ืกืื ืฆืืืืฉื ืื ืคึผืจืึธืคึผืขืจืืืขืก ืคืื ืื ืืึทืื ืืืืคึผืก ืืขื ืืฆื ืืื ืืขื ืืืกืืขืจ ืืื ืื ืืึทืื ืืืคึผ ืคึผืจืึธืคึผืขืจืืืขืก ืคืื ืื ืึทืจืืึทื ืฉืจืืึทื ืคึผืึทืจืึทืืขืืขืจืก.
ืืืกืืขืจ
ืืึทืืจืืฃ ืขืงืืืึทืืืืืงืึธืืคึผืึทืจืึทืืืข = ืจืืงืืืืืขืจื(ื ืึท, ื ื) {
{ืึท == ื} -> ืกืื::ืืืืขืึทื;
{ ืึท != ื } -> ืกืื:: ืืึธืึธืืขืึทื;
}; - ืื ืืขื ืืืขื
ืืงืกืคึผืึทื ืฉืึทื ืคึฟืึทืจ ืืจืืขืื ืืื ืืึทืืืฉืืื ืืืึธืก ืงืขื ืขื ืืืื ืืขืืืืื ื ืึทื ืฉืืึธื ืคืื ืืขืืขืจ ืืขืงืขืก. ืืึธืืืืขืก ืฆืืฉืืขืื ืึท ื ืืึทืข ืืืขื ืฆื ืึธืจืืึทื ืืืืจื ืืงืืจ ืงืึธื ืืืืืจื ืืืืฃ ืืืคืืื ืื ื ืื ืืึทืื ืืจืื ืคืื ืงืึทืืคึผืึธืื ืึทื ืฅ, ืึธื ืึทืจืืึทื ืืขืจืขืื ื ืืขืืขืจ ืืขืงืขืก ืืืจื "# ืื ืงืืืืข". - ืืึทืงืจืึธ __VA_OPT__ ืคึฟืึทืจ ืึทืืึทืคึผืืืื ืืงืกืคึผืึทื ืฉืึทื ืคืื ืืืึทืืขืืืืืง ืืึทืงืจืึธืก ืืืคึผืขื ืืื ื ืืืืฃ ืื ืืืึทืืืึทื ืคืื ืืึธืงืขื ืก ืืื ืื ืืืึทืืขืืืืืง ืึทืจืืืืขื ื.
- ืฉืืืฆื ืคึฟืึทืจ ืื "" ืึธืคึผืขืจืึทืืึธืจ ืคึฟืึทืจ ืืจืื-ืืืขื ืคืึทืจืืืืึทื.
- ืฉืืืฆื ืคึฟืึทืจ ืคืขืืืงืืึทื ืขืืขืืขื ื ืื ืืืืึทืืืืืขืจื ืคึฟืึทืจ ืืืืคืืขืืืก.
- ืคืืืืงืืื ืฆื ืืึทืืืืึท ืืึทืคึผื "* ืืขื" ืืืืกืืจืืงื.
struct int_value {
ืื ื n = 0;
auto getter_fn () {
// ืฉืืขืื:
// ืฆืืจืืงืงืืืขื [=] () { ืฆืืจืืงืงืืืขื n; };// ืืื:
ืฆืืจืืงืงืืืขื [=, *ืืืก]() {return n; };
}
}; - ืจืืคื ืขืืขืืขื ืื ืืืจื ืืืึทืื (ืคึผืืื ืืขืจ-ืฆื-ืืืืืืื), ื ืืฆื ืคึผืืื ืืขืจื ืฆื ืฆืืึทืืืืืึทืืืง ืึทืืืืฉืขืงืฅ ืืืคืืื ื ืืืจื ืื "ืงืึธื ืกื &" ืืืืกืืจืืง.
- ืื ืืืกืืขืงื ืึธืคึผืขืจืึทืืึธืจ ืืื ืึท ืืขืกืืจืืงืืืจ ืืืกืงืจืืืื ืืื ืืขื ืืึธืงืืืขื ื
P0722R1 . - ืงืืืกื ืืขื ืขื ืขืจืืืืื ืฆื ื ืืฆื ืืืกืืขืจ ืคึผืึทืจืึทืืขืืขืจืก ืึธื ืึท ืืืคึผ.
ืกืืจืืงืืืจ ืคืึธืึธ {
foo () = ืคืขืืืงืืึทื;
constexpr foo (ืื ื) {}
};ืืืกืืขืจ
auto get_foo () {
ืฆืืจืืงืงืืืขื f;
}ืืึทืงืืืขื_ืคืึธืึธ(); // ื ืืฆื ืืืคึผืืืกืึทื ืงืึทื ืกืืจืึทืงืืขืจ
get_foo (); - ื ืื-ืคึผืขืจืกืืกืืขื ื ืืึทืืืืึท ืืืืกืืจืืงื ืืื ืงืึทื ืกืืจืึทืงืืขืจ.
- ืึทืืึทืืื ื ืืืกืืขืจ ืกืื ืืึทืงืก ืคึฟืึทืจ ืืึทืืืืึท ืืืืกืืจืืงื ("ืึทืืืึธ ืค = [] (ืกืื:: ืืืขืงืืึธืจ ืื)").
- ืคืืืืงืืื ืฆื ื ืืฆื ืฉืืจืืงื ืืืืขืจืึทื ืืื ืืืกืืขืจ ืคึผืึทืจืึทืืขืืขืจืก.
- ืฉืืืฆื ืคึฟืึทืจ ืกืื ืืึทืงืก ืคืื C-ื ืืกื ืื ืืืืึทืืืืึทืืืึธื - ืคืขืืืขืจ ืืืึธืก ืืขื ืขื ื ืืฉื ืืคืืจืืฉ ืืืกืืขื ืืื ืื ืื ืืืืึทืืืืึทืืืึธื ืจืฉืืื ืืขื ืขื ืื ืืืืึทืืืืื ืืืจื ืคืขืืืงืืึทื.
ืกืืจืืงืืืจ ื {
ืื ื ืจืขื ืืืขื ;
int y;
ืื ื ื = 123;
};ื ืึท {.ืงืก = 1, .ื = 2}; // ืืึทืง == 1, ay == 0, ืึทื == 2
- ืฉืืืฆื ืคึฟืึทืจ ืืืืืืง ืืึทืื ืกืืจืืงืืืจ ืืืืืืืืขืจ.
- ืฉืืืฆื ืคึฟืึทืจ ืื ืืกืชึผืื ืืื ืึทื ืืืืงืื ืึทืืจืืืืืฅ ืฆื ืืืืืืืื ืื ืึธืคึผืืืืืืขืจ ืืืขืื ืื ืืึทืฉืืึธืขืก ืคืื ืืจืืืขืจื ืื ืงืึทื ืืืฉืึทื ืึทื ืงืึทื ืกืืจืึทืงื (โ[[ืืืืงืื]] ืืืื (ืจืึทื ืืึธื> 0) {โ).
- ืคืืืืงืืื ืฆื ื ืืฆื ืจืืื ืืืฉืึทื ืฆื ืื ืืฉืึทืืืื ืื ืืืึทืืขืืืืืง ืืืึทืืืขืก ืืื ืึท "ืคึฟืึทืจ" ืฉืืืืฃ
ืคึฟืึทืจ (ืึทืืืึธ ืื = ืกืื::ืืืขืงืืึธืจ {1, 2, 3}; ืึทืืืึธ& e: v) {
- ืึธืืึทืืึทืืืง ืืขืืฉืื ืคืื ืืขื ืืข ืืจืืืก ืืื ื ืืึท ("ื ืืึท ืืึธืคึผื [] {1,2,3}");
- ืื "[[no_unique_address]]" ืึทืืจืืืืื ืืื ืืืึธืก ืืืขืจืืึทืืึทืื ืึธื ืืึทืื ื ืขืืขื ื ืืฉื ืคึผืืึทืฅ.
- ืึทืืึธืืืฉืข ืคึผืืื ืืขืจื (ืกืื::atomic > ืืื ืกืื::ืึทืืึธืืืฉืข >).
- ืคืืืืงืืื ืฆื ืจืืคื ืืืืจืืืึทื ืคืึทื ืืงืฉืึทื ื ืืื ืงืึทื ืืืฉืึทื ืึทื ืืืืกืืจืืงื.
- ืฉืืืฆื ืคึฟืึทืจ ืืึทืืืืง ืคืึทื ืืงืฉืึทื ื ืืืึธืก ืงืขื ืขื ื ืึธืจ ืึทืจืืขืื ืืื ืงืึทื ืกืืึทื ืฅ.
consteval int sqr(int n) {
ืฆืืจืืงืงืขืจ ื * ื ;
}constexpr int r = sqr(100); // ืืงืขื
ืื ื ืจืขื ืืืขื = 100;
int ืจ2 = ืกืงืจ (ืจืขื ืืืขื ); // ืืขืืช: 'ืจืขื ืืืขื ' ืงืขื ืขื ื ืื ืืืื ืืขืืืืื ื ืืื ืึท ืงืขืกืืืืขืจืืืง - ืืขืืืขืืงืืื ืคืื ื ืืฆื constexpr ืืื ืืืืจืืืึทื ืคืึทื ืืงืฉืึทื ื ("constexpr virtual int f () const {return 2; }").
- ืืื ืืขืจ ื ืึธืจืืึทื ืืืืืืึธืืขืง:
- ืฆืืืขืืขืื ืฉืืืฆื ืคึฟืึทืจ ืื char8_t ืืืคึผ ืคึฟืึทืจ UTF-8 ืกืืจืื ืืก.
- ืึทืืืขื ืืขืืขืจ ืืขืงืขืก ืืืกื (ืืืกื ืึทืคึผืขืจืืืฉืึทื ื) ืืื ืืืขืจืกืืข.
- ืขืก ืืื ืืืฆื ืืขืืืขื ืฆื ืงืึธื ืืจืึธืืืจื ืื ืคึผืจืขืคืืงืก ืืื ืกืึทืคืืงืก ืคืื ืกืืจืื ืืก (ืกืืึทืจืื_ืืื, ืขื ืืก_ืืื).
- ืฆืืืขืืขืื std::remove_cvref, std::unwrap_reference, std::unwrap_decay_ref, std::is_nothrow_convertible ืืื std::type_identity ืืจืืืฅ.
- ืฆืืืขืืืืื ืคืึทื ืืงืฉืึทื ื std::midpoint, std::lerp, std::bind_front, std::source_location, std::visit, std::is_constant_evaluated ืืื std::assume_aligned.
- ืฆืืืขืืขืื ืฉืืืฆื ืคึฟืึทืจ ืขืจืืื ืฆื std::make_shared.
- ืฆืืืขืืืืื std :: to_array ืคืื ืงืฆืืข ืฆื ืืืึทืื ืืขื ืืข-ืืื ืึทืืืืฉืขืงืฅ ืฆื std :: array.
- ืืขืจ ืืึทืงืืืขื ืื ืืืขืจืืืฉืึทื ืกืื ืืึทืงืก:
ืื ืื ืงืืึทืก rgba_color_channel {ืจืืื, ืืจืื, ืืืื, ืึทืืฃ};
std :: string_view to_string (rgba_color_channel my_channel) {
ืืึทืฉืืืืขื (ืืืื_ืืฉืึทื ื ืขื) {
ื ืืฆื ืขื ืื rgba_color_channel;
ืคืึทื ืจืืื: ืฆืืจืืงืงืืืขื "ืจืืื";
ืคืึทื ืืจืื: ืฆืืจืืงืงืืืขื "ืืจืื";
ืคืึทื ืืืื: ืฆืืจืืงืงืืืขื "ืืืื";
ืคืึทื ืึทืืฃ: ืฆืืจืืงืงืืืขื "ืึทืืฃ";
}
} - ืืื ืื ืืขืงืกืื, ืจืขืื ืฆื ืึทื ืืืคืืื ื ื ืึทืืืจ, ืื ื ืืฆื ืคืื ืื ืึธืคึผืขืจืึทืฆืืข "," ("ืึท [ื, C]") ืืื ืคึผืจืึธืืืืืึทืืึทื. ืฉืืืฆื ืคึฟืึทืจ ืจืืึฟ ืึทืคึผืขืจืืืฉืึทื ื ืืื ืืืขืจืืึทืืึทืื ืืขืจืงืืขืจื ืืื ืื ืืืึทืืึทืืึทื ืงืืืืขืจื ืืื ืืืกืงืึทื ืืื ืืื, ืึทืจืืึทื ืืขืจืขืื ื ืื "++" ืืื "-" ืึทืคึผืขืจืืืฉืึทื ื ืืื ื ืึธืจืืึทื ืืืืคึผืก.
- ืจืืืืกื ืื ื ืืืขืจ ืคืื ืกืืืืึทืืืึธื ืก ืืื ืืืึธืก "ืืืคึผื ืึทืืข" ืืื ืคืืจืืื ืื ืฆื ืึธื ืืืืึทืื ืืขื ืืืึทืืืึทื ืคืื ืึท ืืืคึผ.
ืืงืืจ: opennet.ru