рдЗрд╕ рдмрд╛рд░ рдкрд╣рд▓реЗ рднрд╛рдЧ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдирд╡рд╛рдЪрд╛рд░ рд╣реИрдВред рдлрд┐рд░ рднреА, C ++ 14 рдХреЛ рдПрдХ рддреБрдЪреНрдЫ рд░рд┐рд▓реАрдЬ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ C ++ 11 рдХреА рдХрдорд┐рдпреЛрдВ рдХреЛ рджреВрд░ рдХрд░рдирд╛ рд╣реИред
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕реВрдЪреА:
- рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреА рдореБрдлреНрдд рдореЗрдореЛрд░реА
- рдбрд┐рдЬрд┐рдЯрд▓ рдкрд░рд┐рд╕реАрдорди рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХрд▓ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди
- рд╡рд┐рд╢реЗрд╖рддрд╛
[[deprecated]]
std::complex
рд▓рд┐рдП рдХрд╕реНрдЯрдо рд╢рд╛рдмреНрджрд┐рдХ std::complex
- рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо рдПрдкреАрдЖрдИ
- рдиреЗрдЯрд╡рд░реНрдХ рдмрд╛рдЗрдЯ рд░реВрдкрд╛рдВрддрд░рдг
рдирдИ C ++ 14 рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди: рднрд╛рдЧ 1рд╡рд░реНрддрдорд╛рди рдорд╕реМрджрд╛ рдорд╛рдирдХрднрд╛рд╖рд╛ рдореЗрдВ рд╣реА рдмрджрд▓рд╛рд╡ рдЖрддрд╛ рд╣реИ
рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреА рдореБрдлреНрдд рдореЗрдореЛрд░реА
C ++ 11 рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░
operator delete
рдХреНрд▓рд╛рд╕ рдХреА рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдЯрд╛рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЖрдХрд╛рд░ рд▓реЗрддрд╛ рд╣реИред рдЕрдм, рдЗрд╕реА рд╡реИрд╢реНрд╡рд┐рдХ
delete
рдСрдкрд░реЗрдЯрд░ рдХреЛ рдорд╛рдирдХ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдЖрдзреБрдирд┐рдХ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЬреЛрдбрд╝реЗ рдЧрдП рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИрдВ:
void operator delete(void* ptr, std::size_t size) noexcept; void operator delete(void* ptr, std::size_t size, const std::nothrow_t&) noexcept; void operator delete[](void* ptr, std::size_t size) noexcept; void operator delete[](void* ptr, std::size_t size, const std::nothrow_t&) noexcept;
рдореБрдЦреНрдп рд╕рдВрдЧрддрддрд╛ рдореБрджреНрджрд╛ рдЬреЛ рдпрд╣рд╛рдВ рдЙрддреНрдкрдиреНрди рд╣реБрдЖ рд╣реИ, рд╡рд╣ рд╣реИ рдЬрдм рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХреЗ рд▓рд┐рдП рдирдИ рдкреНрд░рдгрд╛рд▓реА рдФрд░ рдкреБрд░рд╛рдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирдП рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ, рдПрдХ рдСрдкрд░реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдЬреЛ рдПрдХ рдЖрдХрд╛рд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЙрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред рдлрд┐рд▓рд╣рд╛рд▓, рдПрдХ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдорд╛рдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЖрдХрд╛рд░ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдмрдВрдзрд┐рдд рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдм рддрдХ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдФрд░ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдорд╛рдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕ рддрд░рд╣, рд╕рдорд┐рддрд┐ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдХреЛ рдЕрдкрдиреЗ рдореЗрдореЛрд░реА рдПрд▓реЛрдХреЗрдЯрд░ рдХреЛ рдЕрдиреБрдХреВрд▓ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рджреЗрддреА рд╣реИред
рдбрд┐рдЬрд┐рдЯрд▓ рдкрд░рд┐рд╕реАрдорди рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХрд▓ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди
рдЕрдм рдЖрдк рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрд▓ рдЙрджреНрдзрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрдЦреНрдпрд╛
1048576
,
1'048'576
,
1'0'4'8'5'7'6
,
0X100000
,
0x10'0000
, рдФрд░
0'004'000'000
рдХрд╛ рдПрдХ рд╣реА рдЕрд░реНрде рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдирд┐рдореНрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ:
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдХреНрд░реЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрджрд▓рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
#define M(x, ...) __VA_ARGS__ int x[2] = { M(1'2,3'4) };
рдФрд░ рджреВрд╕рд░рд╛, рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдХрдИ рд╕рдВрдкрд╛рджрдХреЛрдВ рдФрд░ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ рдЕрдм рдХреЛрдб рдХреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╣рдмреНрд░рд╛рд╣реНрд░рд╛ рднреА рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рддреБрд▓рдирд╛ рдХрд░реЗрдВ:
int testing_habrahabr_syntax_highlighter = 1000;
int testing_habrahabr_syntax_highlighter = 1'000;
int testing_habrahabr_syntax_highlighter = 1'000'000;
int testing_habrahabr_syntax_highlighter = 1'0'0'0'0'0'0;
рд╡рд┐рд╢реЗрд╖рддрд╛ [[deprecated]]
C ++ 11 рдореЗрдВ, рдкрд╣рд▓реЗ рд╕реЗ gcc / clang рдФрд░ __declspec рдХреЗ рд▓рд┐рдП __attribute__ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреНрдЮрд╛рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдорд╛рдирдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред C ++ 14 рдореЗрдВ, рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реА рдЧрдИ, рдЬреЛ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреЛрдХрди рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ: рд╡рд░реНрдЧ, рдЪрд░, рдЧреИрд░-рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рд╕рджрд╕реНрдп, рдлрд╝рдВрдХреНрд╢рди, рдЧрдгрдирд╛, рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛, рдпрд╛ рдЯрд╛рдЗрдк-рдмреАрдлрд╝ - рдЕрдЧрд░ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдпрд╣ рдЖрдЧреЗ рдЙрдкрдпреЛрдЧ рдЕрд╡рд╛рдВрдЫрдиреАрдп рд╣реИред рдирддреАрдЬрддрди, рдЬрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХрд░реЗрдЧрд╛ред рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджреЗрд╢ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЙрдкрдпреБрдХреНрдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрдЭрд╛рд╡) рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╕рдВрдХрд▓рдХ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
void foo(); [[deprecated("use 'foo' instead")]] void bar();
рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЯреЛрдХрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рдпрджрд┐ рдЖрдк, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреА рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рдХреЛ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд░рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
#include <GL/gl.h> [[deprecated("use 'glDrawArrays' instead")]] void glBegin(GLenum);
рдПрд╕рдЯреАрдПрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╡рд┐рд╡реЗрдХ рдкрд░, рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рдбреА рдореЗрдВ рд╕реА ++ рдорд╛рдирдХ (рд╕рдВрдЧрддрддрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ) рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рднреА рдпреЛрдЧреНрдп рдЯреЛрдХрди рдХреЛ рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди
std::complex
рд▓рд┐рдП рдХрд╕реНрдЯрдо рд╢рд╛рдмреНрджрд┐рдХ std::complex
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдХреЗрд╡рд▓ рдХрд╛рд▓реНрдкрдирд┐рдХ рднрд╛рдЧ рд╕реЗ рдорд┐рд▓рдХрд░ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ:
namespace std { inline namespace literals { inline namespace complex_literals { constexpr complex<long double> operator""il(long double); constexpr complex<long double> operator""il(unsigned long long); constexpr complex<double> operator""i(long double); constexpr complex<double> operator""i(unsigned long long); constexpr complex<float> operator""if(long double); constexpr complex<float> operator""if(unsigned long long); }}}
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
using namespace std; complex<double> a = 1.5 + 0.3i; auto b = 2.3 - 0.2i;
рддрдХрдиреАрдХреА рд╡рд┐рдирд┐рд░реНрджреЗрд╢

рдЬреИрд╕рд╛ рдХрд┐ рдЫрд╡рд┐ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, 2011 рддрдХ рд╕рдорд┐рддрд┐ рдиреЗ "рдЕрдЦрдВрдб" рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд╣рд╛рдВ рд╕рднреА рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдПрдХрдорд╛рддреНрд░ рдорд╕реМрджрд╛ рдорд╛рдирдХ рдореЗрдВ рдЧрд┐рд░ рдЧрдИрдВред
2012 рдХреЗ рдмрд╛рдж рд╕реЗ, рд╕рдорд┐рддрд┐ рдПрдХ рдЕрдзрд┐рдХ "рд╡рд┐рддрд░рд┐рдд" рдореЙрдбрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЧрдИ рд╣реИ, рдЬрд╣рд╛рдВ рдорд╛рдирдХ рд╡рд┐рдХрд╛рд╕ рдХреА рдореБрдЦреНрдп рджрд┐рд╢рд╛рдПрдВ рдЕрдкрдиреА рдЧрддрд┐ рд╕реЗ рдорд╛рдирдХ рдХреЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рдЬреИрд╕реЗ рд╣реА рд╡реЗ рддреИрдпрд╛рд░ рд╣реЛрддреА рд╣реИрдВ, рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЦреНрдп рдорд╛рдирдХ рдХреЗ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛, рддрдХрдиреАрдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ (рдЯреАрдПрд╕) рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрд╕рдХреЗ рдмрд╛рджред рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рдмрд╛рдж рдЙрд╕рдХреЗ рд╕рд╛рде рд╡рд┐рд▓рдпред рдпрд╣ рдореЙрдбрд▓ рд╕рдорд┐рддрд┐ рдХреЛ рдЫреЛрдЯреЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рдХрд╛рд░реНрдп рдХреЛ рддреЗрдЬреА рд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рдирд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЬрдирддрд╛ рдХреЗ рд╕рд╛рдордиреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдорд╛рдирдХ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд░рд┐рд╣рд╛рдИ рдХреЛ рднреА рддреЗрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдлрд┐рд▓рд╣рд╛рд▓, рдлрд╝рд╛рдЗрд▓ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕рд╣рд┐рдд Boost.Filesystem v3 рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ
рдкреНрд░рд╛рд░реВрдк рдПрдкреАрдЖрдИ рддрдХрдиреАрдХреА рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдореЛрджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ:
- рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдЯреАрдПрд╕ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рдиреЗрдЯрд╡рд░реНрдХ (рдмрд┐рдЧ-рдПрдВрдбрд┐рдпрди) рдФрд░ рд▓реЛрдХрд▓ рдорд╢реАрди рдкрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдмрд╛рдЗрдЯ рдСрд░реНрдбрд░ рдХреЛ рдлрдВрдХреНрд╢рдирд▓
htonl(), htons(), ntohl(), ntohs()
рдХреЗ рдлрдВрдХреНрд╢рдВрд╕ htonl(), htons(), ntohl(), ntohs()
рдмреАрдЪ рдореЗрдВ htonl(), htons(), ntohl(), ntohs()
ред рд╕рдорд┐рддрд┐ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдореЛрджрд┐рддред - рдпреВрдЖрд░рдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ ред рдЕрднреА рднреА рд╕рдорд┐рддрд┐ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдореЛрджрди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рд╣реИред
- рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрдВрдбрд╛рдореЗрдВрдЯрд▓ рдЯреАрдПрд╕: рдпрд╣ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд┐рдП
optional<>
рдФрд░ рдЕрдиреНрдп рдореВрд▓рднреВрдд рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ рдпрд╣рд╛рдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред - рдРрд░реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рдиреНрд╕ TS: рдПрд░реЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рднрд╛рд╖рд╛ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдХреНрд╕рдЯреЗрдВрд╢рдиред рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд┐рдП
dynarray<>
- dynarray<>
runtime-sized arrays
рдФрд░ dynarray<>
рдпрд╣рд╛рдВ рдмрдирд╛рдП рдЧрдП рдереЗред - Concurrency TS: рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрдХреЛрдВ рдФрд░ рдЕрдиреБрд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдФрд░
std::future
, рдЬреИрд╕реЗ рдХрд┐ .then()
рдФрд░ .when_*()
рд▓рд┐рдП рдЧреИрд░-рдЕрд╡рд░реЛрдзрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рд╣реИред рдмрд╛рдж рдореЗрдВ, рднрд╛рд╖рд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди, рдЬреИрд╕реЗ рдХрд┐ await
, рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди, рдЬреИрд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╣реИрд╢ рдХрдВрдЯреЗрдирд░ , рдХреЛ рдпрд╣рд╛рдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред - рд╕рдорд╛рдирддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди: рд╢реБрд░реВ рдореЗрдВ, рдЗрд╕рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдПрд╕рдЯреАрдПрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рдХрдИ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдФрд░ рд╡реЗрдХреНрдЯрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкреНрд░реЛрд╕реЗрд╕рд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реЗрдЯ рдХреА рдкреВрд░реА рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рд╕рднреА рддрдХрдиреАрдХреА рд╡рд┐рдирд┐рд░реНрджреЗрд╢
std::experimental
рдирд╛рдо рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХ рдЯреАрдо рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ "2D рд▓рд╛рдЗрдЯ" рдбреНрд░рд╛рдЗрдВрдЧ рдПрдкреАрдЖрдИ рдХреЛ рдорд╛рдирдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИред рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдФрд░ C ++ рдХреА рдПрдХ рдЫреЛрдЯреА рд╕реА рдЪрд░реНрдЪрд╛, рдХреЛрдЯ рдСрдл рдЖрд░реНрдореНрд╕ рдСрдл рд╕рдЯрд░ рдХреЗ рд╕рд╛рде рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рдореЗрдВ GoingNative2013 рдХреЗ рд╕рд╛рде рдорд┐рд▓ рд╕рдХрддреА рд╣реИ,
рдпрд╣рд╛рдВ 42:30 рдмрдЬреЗ рд╢реБрд░реВ рд╣реЛрдЧреАред
рдирд┐рд╖реНрдХрд░реНрд╖
рд╕рдорд┐рддрд┐ рдХреА рдЕрдЧрд▓реА рдмреИрдардХ рдлрд░рд╡рд░реА 2014 рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИред рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ рдЕрдЧрд▓реЗ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреА рд░рд┐рд╣рд╛рдИ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдорд╛рдирддрд╛ рдорд┐рд▓рддреА рд╣реИ - рд╕реА ++ 14 рдорд╛рдирдХ, рдЬрд┐рд╕реЗ рд╕реА ++ 1y рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рд╛рд▓ рдХреА рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХреНрд▓реИрдВрдЧ рдХреЗ рд╕рд╛рде рдПрд╕рд╡реАрдПрди рдореЗрдВ libc ++ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╛рдирдХ рдХреЗ рд╡рд░реНрддрдорд╛рди рдорд╕реМрджреЗ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЬреАрд╕реАрд╕реА рдХреБрдЫ рдкреАрдЫреЗ рд╣реИред рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдБ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
Clang ,
libc ++ ,
GCC ред
рдирдИ C ++ 14 рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди: рднрд╛рдЧ 1рд╡рд░реНрддрдорд╛рди рдорд╕реМрджрд╛ рдорд╛рдирдХрдкреАрдПрд╕ swap
рдСрдкрд░реЗрдЯрд░
рдорд╛рдирдХреАрдХрд░рдг рдХреЗ рдЕрдиреНрдп рд╕рднреА рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдореЗрдВ, рдкрд┐рдЫрд▓реЗ рд╡рд╕рдВрдд рдореЗрдВ C ++: =: рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдСрдкрд░реЗрдЯрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдерд╛, рдЬреЛ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп
std::swap
рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛ред рдлрд┐рд░ рдХреБрдЫ рдиреЗ рдЗрд╕реЗ рдЕрдкреНрд░реИрд▓ рдлреВрд▓ рдХреЗ рдордЬрд╛рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд╕реНрдд рдХреЗ рдЕрдВрдд рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 2 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдореБрдЭреЗ рдЕрднреА рддрдХ рдЗрд╕ рдСрдкрд░реЗрдЯрд░ рдкрд░ рд╕рдорд┐рддрд┐ рдХреА рд░рд╛рдп рдирд╣реАрдВ рдкрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрднреА рддрдХ рдорд╛рдирдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреБрдореЛрджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдпрд╣рд╛рдБ рдФрд░ рдкрдврд╝реЗрдВред