ISO Committee on Standardization of the C++ Language probatus vexillum internationale "I C ++». Facultates in specificatione, exceptis casibus solitariis, praesentatae; suscepit in compilers GCC, SONUS и Microsoft Visual C ++. Vulgatae bibliothecae C++20 subsidia intra documentum perficiuntur Boost.
In proximis duobus mensibus, specificatio approbata erit in stadio apparandi documentum ad publicationem, ad quem opus fiet in emendatione editorial errores orthographiae et typos. Primo Novembri, documentum consequens ISO mittetur ad publicationem sub nomine formali ISO/IEC 14882:2020. Interim consilium opus in proximo C++23 vexillo iam incohavit (C++2b) et optiones possibiles in proximo virtuali congressu considerabit. innovations.
Addidit "conceptas", extensiones template, quod permittit te definire a paro of template parametri requisita, quae, tempore compile, limitare argumentorum statuto, qui parametris templates accipi possunt. Conceptus adhiberi possunt ad vitandas repugnantias logicas inter proprietates notitiarum generum, quibus usus est in Formula et notitiis specierum proprietatum parametri initus.
template
conceptus aequalityComparable = requirit (T a, T b) {
{ a == b } -> std::boolean;
{ a != b } -> std::boolean;
};
Accepit dilatatio ad operandum cum modulis qui pro fasciculis capitis adhiberi possunt. Moduli novam viam praebent ad fontem codicem ordinandum in definiendis partium compositionum finibus, nullis inclusis lima per "#includere".
Macro __VA_OPT__ ad adaptivam expansionem variarum macronum secundum praesentiam a signis in argumento variabili.
Firmamentum " "oratoris comparationis trium viarum".
Suscipe pro defectu elementi initializers pro bitfields.
Facultas ad captandas lambda "hoc" locutiones.
instrúite int_value {
int n = 0;
Auto getter_fn () {
//MALUS:
// return [=]() { return n; };
// BONUM:
return [=, *hoc]() { return n; };
}
};
Elementa vocans a monstratore (Pointer-ad-membrum), argumentis utens obiectis temporalibus per expressionem "const &" definitam.
Procurator deletae cum destructore in documento descriptus P0722R1.
Classes in parametris templates sine typo uti permittuntur.
Formula permittens syntaxin ad expressions lambda ("auto f = [] (std ::vector v) ").
Facultas utendi literalis chordis in parametris template.
Support pro C-styli initializationis syntaxi - agri non explicite recensiti in indice initializationis per defaltam initialized sunt.
instrue A {
int;
int y;
int z = 123;
};
A a {.x = 1, .z = 2}; // ax == 1, ay == 0, az == 2
Firmamentum inanis notitia structura membrorum.
Firmamentum pro verisimilibus et verisimilibus attributis certiorem facere optimizer de probabilitate constructionis conditionalis Urguet (“[[amilice]] si (rande > 0) {“).
Facultatem iugis ad initialize valores variabiles in "pro" loop
pro (auto v = std::vector{1, 2, 3}; auto& e : v) {
Calculus automaticus in nova magnitudine ordinata ("nova duplici[]{1,2,3}");
Proprium "[[no_unique_address]]" attributum in quo variabiles sine notitia spatium non capiunt.
Munus addidit std::to_array convertendi res ordinatas sicut std :: ordinata.
Commodior syntaxis enumeratio:
enum genus rgba_color_channel {rubrum, viride, caeruleum, alpha };
std :: string_view to_string(rgba_color_channel my_channel) {
switch (my_channel) {
usus enum rgba_color_channel;
casus ruber: redi "rubrum";
casus viridis: revertere "viridis";
caeruleum: return "hyacinthinum";
casus alpha: return "alpha";
}
}
In indicibus, ob indefinitas mores, operationis usus "," ("a[b,c]") prohibetur. Auxilia maxime operationum cum variabilibus cum keyword volatili declarata discontinuata est, inter "++" et "-" operationes cum speciebus vexillum.
Numerum condicionum in quibus "typename" demonstrandum est coram typum reduximus.