3 рдордИ рдХреЛ, GCC рдХреЗ рдиреМрд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдкрд╣рд▓реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рд┐рд▓реАрдЬрд╝ рд╣реБрдИ: GCC 9.1ред
рдЗрд╕рдореЗрдВ рдЖрдард╡реЗрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрдзрд╛рд░ рдФрд░ рдкрд░рд┐рд╡рд░реНрдзрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рд╕рдВрд╕реНрдХрд░рдгред
рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рд╡рд░реНрддрди
рд╡рд┐рдХрд▓реНрдк
- рдЖрдХрд╛рд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЖрджреЗрд╢ рдЕрдм рдЖрдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 64-рдмрд┐рдЯ рдорд╛рдиреЛрдВ рдФрд░ рдкреНрд░рддреНрдпрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ;
- рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ -рдлреНрд▓рд╛рдЗрд╡-рдкреИрдЪрд┐рдВрдЧ, рдЙрди рдЕрдиреБрдХреВрд▓рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЧрддрд┐рд╢реАрд▓, рдХреЛрдб рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рд╣реИрдВ;
- рдХрдорд╛рдВрдб рд╢реЗрд▓ рдореЗрдВ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдкреВрд░реНрдгрддрд╛ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛;
- рдХрдВрдкрд╛рдЗрд▓рд░ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдореЗрдВ рдЕрдм рд▓рд╛рдЗрди рдирдВрдмрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ (-fno-рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕-рд╢реЛ-рд▓рд╛рдЗрди-рдирдВрдмрд░) рдФрд░
рдЬрд╛рдирдХрд╛рд░реА рдЯрд╛рдЗрдк рдХрд░реЗрдВ (рдПрдлрдПрдирдУ-рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕-рд╢реЛ-рд▓реЗрдмрд▓); - рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ -fdiagnostics-format=json JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП;
- рд╕рдВрд░реЗрдЦрдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк (-рдлрд╛рд▓рд┐рдЧреНрди-рдлрд╝рдВрдХреНрд╢рдВрд╕, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рдЕрдм рдХреБрдЫ рд╕рдВрд░реЗрдЦрдг рд╡рд┐рдХрд▓реНрдк рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ;
- рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗ рдЧрдП (-fprofile-рдлрд╝рд┐рд▓реНрдЯрд░-рдлрд╝рд╛рдЗрд▓реЗрдВ, -fprofile-рдмрд╣рд┐рд╖реНрдХреГрдд-рдлрд╝рд╛рдЗрд▓реЗрдВ), рдЬреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдпрдВрддреНрд░реАрдХреГрдд рд╣реИрдВ;
- рдПрдбреНрд░реЗрд╕рд╕реЗрдирд┐рдЯрд╛рдЗрдЬрд╝рд░ рдЕрдм рд╕реНрдЯреИрдХ рдкрд░ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рддрдХ рдЕрдорд╛рдиреНрдп рдкрд╣реБрдВрдЪ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╕рдВрд░реЗрдЦрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ;
- рдХрдИ рдЖрдЙрдЯрдкреБрдЯ рд╕реБрдзрд╛рд░ -рдлреЛрдкреНрдЯ-рдЬрд╛рдирдХрд╛рд░реА;
- рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ -fsave-рдЕрдиреБрдХреВрд▓рди-рд░рд┐рдХреЙрд░реНрдб рдЕрдиреБрдХреВрд▓рди рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП;
- рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ -рдлрд┐рдкрд╛-рд╕реНрдЯреИрдХ-рд╕рдВрд░реЗрдЦрдг ╨╕ -рдлрд┐рдкрд╛-рд╕рдВрджрд░реНрдн-рдкрддрд╛ рдпреЛрдЧреНрдп.
рдирдИ рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ
- __рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд_рдЙрдореНрдореАрдж_рд╕рд╛рде_рд╕рдВрднрд╛рд╡рдирд╛;
- __рдмрд┐рд▓реНрдЯрдЗрди_рд╣реИ_рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ;
- __рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд_рдЕрдЯрдХрд▓реЗрдВ_рд╕реБрд░рдХреНрд╖рд┐рдд_рдореВрд▓реНрдп.
рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛
рдЕрдиреНрдп
рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреЗрдХ рдХреЛрдб рдЬрдирд░реЗрд╢рди рд╕реБрдзрд╛рд░:
- рд╕реНрд╡рд┐рдЪ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг;
- рдЕрдВрддрд░-рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдЕрдиреБрдХреВрд▓рди;
- рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓рд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдиреБрдХреВрд▓рди;
- рдЕрд╕реЗрдВрдмрд▓реА рдЪрд░рдг рдореЗрдВ рдЕрдиреБрдХреВрд▓рди (рдПрд▓рдЯреАрдУ);
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ gcov рдХрд╛ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рд╛рд░реВрдк рдЕрдм JSON рд╣реИ, рдФрд░ рдирдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ --рдЙрдкрдпреЛрдЧ-рдЧрд░реНрдореА-рд░рдВрдЧ рдЗрд╕рдореЗрдВ рдХреЛрдб рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЗрд╕ рдЖрдзрд╛рд░ рдкрд░ рд░рдВрдЧрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдХрд┐рддрдиреА рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рднрд╛рд╖рд╛рдПрдБ
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдкреВрд░реНрдгрддрд╛ рдУрдкрдирдПрд╕реАрд╕реА C, C++ рдФрд░ рдлреЛрд░рдЯреНрд░рд╛рди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдЬрд╛рд░реА рд╣реИред
рд╕реА-рдЬреИрд╕реА рднрд╛рд╖рд╛рдПрдБ
- рдУрдкрдирдПрдордкреА 5.0 рдХреЗ рд▓рд┐рдП рдЖрдВрд╢рд┐рдХ рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;
- рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ __рдмрд┐рд▓реНрдЯрдЗрди_рдХрдиреНрд╡рд░реНрдЯрд╡реЗрдХреНрдЯрд░;
- рдЪреЗрддрд╛рд╡рдиреА рдЬреЛрдбрд╝реА рдЧрдИ -рдкреИрдХреНрдб-рд╕рджрд╕реНрдп рдХрд╛ рдкрддрд╛;
- рдХрдИ рдореМрдЬреВрджрд╛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░;
- рдореИрдХреНрд░реЛ рдореЗрдВ рдЧрд▓рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐ рдкрд╛рда рдореЗрдВ рдЕрдм рдореИрдХреНрд░реЛ рдХреА рдШреЛрд╖рдгрд╛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ;
- рдЯрд╛рдЗрдкреЛ рд╕реБрдзрд╛рд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ред
C
- -std=c2x (рднрд╡рд┐рд╖реНрдп рдХреЗ C рдорд╛рдирдХ) рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реНрдХ рдХреЗ рд╕рд╛рде _Static_assert рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ;
- рдирдИ рдЪреЗрддрд╛рд╡рдиреА -рд╡рд╛рдмреНрд╕реЛрд▓реНрдпреВрдЯ-рд╡реИрд▓реНрдпреВ, рдЬреЛ abs() рдЬреИрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рддрд░реНрдХ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реИред
рд╕реА + +
- рдирдИ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ: -Wрдирд┐рдВрджрд╛-рдкреНрд░рддрд┐рд▓рд┐рдкрд┐,
-рд╡рд┐рдирд┐рдЯ-рд╕реВрдЪреА-рдЬреАрд╡рдирдХрд╛рд▓,
-рдирд┐рд░рд░реНрдердХ-рдЪрд╛рд▓,
-Wрдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ-рдЪрд╛рд▓,
-Wclass-рд░реВрдкрд╛рдВрддрд░рдг; - рднрд╡рд┐рд╖реНрдп рдХреЗ рдорд╛рдирдХ рд╕реЗ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдЪрд▓ рд░рд╣рд╛ рд╣реИ рд╕реА++2рдП;
- рдлреНрд░рдВрдЯрдПрдВрдб рдЕрдм рдХрдИ рд╕реНрд░реЛрдд рдХреЛрдб рддрддреНрд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдирд┐рджрд╛рди рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
- рдЕрддрд┐рднрд╛рд░рд┐рдд рдХрд╛рд░реНрдпреЛрдВ, рдмрд╛рдЗрдирд░реА рдСрдкрд░реЗрдЯрд░реЛрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдФрд░ рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдирд┐рджрд╛рди;
- рдХрдИ рд▓реЛрдХрдкреНрд░рд┐рдп рддреНрд░реБрдЯрд┐рдпреЛрдВ (рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрд╖реНрдардХ, рдирд╛рдорд╕реНрдерд╛рди, рдЯрд╛рдЗрдкреЛ рдЗрддреНрдпрд╛рджрд┐) рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рдХрд╛рд╕ рдкрд░рд┐рд╡реЗрд╢реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реБрдзрд╛рд░ рдЬреЛрдбрд╝реЗ рдЧрдПред
libstdc++
- C++17 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрдм рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИ;
- рд╕рдорд╛рдирд╛рдВрддрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, , , рдП рдЕрдм -lstdc++fs рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ;
- C++2a рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕рдорд░реНрдерди ( , , std::bind_front, рдЖрджрд┐);
- рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдлрд╝рд╛рдЗрд▓ рд╕реНрдЯреНрд░реАрдо рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдЬрд┐рдирдХреЗ рдкрдереЛрдВ рдореЗрдВ рдЧреИрд░-рдЪрд╛рд░ рд╡рд░реНрдг рд╣реЛрддреЗ рд╣реИрдВ;
- рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдорд░реНрдерди рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░;
- рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдЯреАрдПрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдорд░реНрдердиред
D
рдбреА рднрд╛рд╖рд╛ рд╕рдВрд╕реНрдХрд░рдг 2.076 рдЬреАрд╕реАрд╕реА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред
рдлреЛрд░рдЯреНрд░рд╛рди
- рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ I/O рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕рдорд░реНрдерди;
- MINLOC рдФрд░ MAXLOC рдХреЗ рд▓рд┐рдП рдмреИрдХ рддрд░реНрдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛;
- FINDLOC рдФрд░ IS_CONTIGOUS рдлрд╝рдВрдХреНрд╢рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЧрдП;
- рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдШрдЯрдХреЛрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: c%re рдФрд░ c%im;
- рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ str%len рдФрд░ a%kind;
- рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╕реА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдФрд░ рдЖрдИрдПрд╕рдУ_рдлреЛрд░рдЯреНрд░рд╛рди_рдмрд╛рдЗрдВрдбрд┐рдВрдЧ.рдПрдЪ рд╣реЗрдбрд░;
- рдЬрдм рдХреЛрдИ рдПрдХ рддрд░реНрдХ NaN рд╣реЛ рддреЛ MAX рдФрд░ MIN рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рдвреАрд▓ рджреА рдЧрдИ;
- рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ -fdec-include;
- рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд.
libgccgit
- рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ gcc_git_context_add_driver_option.
рдЕрдиреНрдп
рдХрдИ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░- рдФрд░ рдУрдПрд╕-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рд╡рд░реНрддрдиред
рд╕реНрд░реЛрдд: linux.org.ru