
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдЧреНрд░рджреВрдд
рд╢рд╛рдпрдж рдЗрд╕ рддрд╕реНрд╡реАрд░ рдХреЗ рд╕рд╛рде
рдмреВрд╕реНрдЯ ,
рд▓реЛрдХреА , рд╕реНрд╡рддрдВрддреНрд░ рдФрд░ рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рд╛рде рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдорд╛рдирдХ рд╕реА ++ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рднреА рдХрд╣рд╛рдиреА рд╢реБрд░реВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рд╣рд╛рдВ, рд╣рд╛рдВ, рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдЬреА ++, рдХреНрд▓реИрдВрдЧ, рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдпрд╛ рднрдЧрд╡рд╛рди рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕, рд╕реА + + рдмрд┐рд▓реНрдбрд░ (рдкреВрд░реНрд╡ рдореЗрдВ рдмреЛрд░рд▓реИрдВрдб, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдПрдореНрдмрд░рдХреИрдбрд░реЛ) рдХреЛ рдорд╛рдл рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдмреИрд╕рд╛рдЦреА рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ, рд╡реЗ рдЕрдкрдиреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдирд╣реАрдВ рддреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рдЗрдХрд┐рд▓ рдирд╣реАрдВ рд▓рд┐рдЦреЗрдВрдЧреЗ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдорд╛рдирдХ C ++ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдЖрдкрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ред
рд▓реЗрдЦ рдПрдХ рдХрд╣рд╛рдиреА рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ "рдкрд╛рдиреА" рдФрд░ рдкрд╛рдЪрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рдХреЛрдб рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рдЬреЛ рд╕реА ++ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рдереЗ, рдЦрд╛рд╕рдХрд░ рдкреБрд░рд╛рдиреЗ рдХрдВрдкрд╛рдЗрд▓рд░реЛрдВ рдкрд░ред рдмреЗрд╕рдмреНрд░реА рдФрд░ рдЧреИрд░-рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдЬ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде GitHub рдХреЛ рд▓рд┐рдВрдХ рдХрд░реЗрдВ:
https://github.com/oktonion/stdex (рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ)
рдФрд░ рдЕрдм, рдкрд╣рд▓реА рдЪреАрдЬреЗрдВ рдкрд╣рд▓реЗред
рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛
рдкрд░рд┐рдЪрдп
рдЕрдзреНрдпрд╛рдп 1. рд╡реАрдЖрдИрдПрдо рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рд╡рдбреЗрдВрд╕рдЕрдзреНрдпрд╛рдп 2. #ifndef __CPP11_SUPPORT__ #define __COMPILER_SPECIFIC_BUILT_IN_AND_MACRO_HELL__ #endifрдЕрдзреНрдпрд╛рдп 3. рд╕рд╣реА nullptr рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдвреВрдБрдврдирд╛рдЕрдзреНрдпрд╛рдп 4. рд╕реА ++ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореИрдЬрд┐рдХ....
рек.рез рд╣рдо рдЫреЛрдЯреЗ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ....
рек.реи рд╣рдорд╛рд░реЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рддрдиреА рдЪрдорддреНрдХрд╛рд░реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрдХрд▓рди рдХрд░рддрд╛ рд╣реИ....
рек.рей рдкреЙрдЗрдВрдЯрд░реНрд╕ рдФрд░ рдСрд▓-рдСрд▓-рдСрд▓....
4.4 рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдФрд░ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдЕрдзреНрдпрд╛рдп 5
...
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рдпрд╣ 2017 рдерд╛, рд╕реА ++ 11 рдирдП рдФрд░ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдирдП рд╕рдВрдХрд▓рдХреЛрдВ рдХреА рдПрдХ рдирдИ рдзрд╛рд░рд╛ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдлрдЯ рдЧрдпрд╛ рд╣реИ, рдзрд╛рд░рд╛рдУрдВ, рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреЗ рд╕рд╛рде рдорд╛рдирдХреАрдХреГрдд рдХрд╛рдо рд▓рд╛рддрд╛ рд╣реИ, рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдорд╛рдирдХреАрдХрд░рдг рдХрд░рдирд╛, рдорд╛рдирдХ рдореЗрдВ "рдмрдбрд╝реЗ"
рд▓рдВрдмреЗ рд▓рдВрдмреЗ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ, рдЕрдВрдд рдореЗрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП
рдСрдЯреЛ (рдЕрд▓рд╡рд┐рджрд╛
std :: рдореИрдк <рдЯрд╛рдЗрдк, рдЯрд╛рдЗрдк> :: const_iterator it = ... - рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдЖрдк рдореБрдЭреЗ рд╕рдордЭрддреЗ рд╣реИрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реНрдпрд╛рдкрдХ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдФрд░
рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдирдП рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рдВрдпреЛрдЬрди рд╕рдмрд╕реЗ рдЖрдо рдореЗрдВ рд╕реЗ рдПрдХ рдмрди рдЧрдпрд╛ рд╣реИред рд▓реВрдк рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рдЕрдВрдд рдореЗрдВ, рд╣рдо (рдбреЗрд╡рд▓рдкрд░реНрд╕) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдбреЗрд╡рд▓рдкрд░) рдХреЛ рдорд╛рдирд╡реАрдп рд░реВрдк рд╕реЗ рдпрд╣ рдмрддрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ рдХрд┐ рдХреНрдпреЛрдВ
static_assert , рд╕рд╛рде рд╣реА
enable_if рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдПрдХрддреНрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЕрдм рдЖрд╡рд╢реНрдпрдХ рдУрд╡рд░рд▓реЛрдб рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЬрд╛рджреВ рджреНрд╡рд╛рд░рд╛ред
рдпрд╛рд░реНрдб рдореЗрдВ 2017 рдерд╛! рдкрд╣рд▓реЗ рд╕реЗ рд╣реА C ++ 17 рдХреЛ рдЬреАрд╕реАрд╕реА, рдХреНрд▓реИрдВрдЧ, рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣рд░ рдЬрдЧрд╣
рдбрд┐рдХреНрд▓реЗрдкрдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рд╕реА ++ 11 рдХреЗ рдмрд╛рдж рд╕реЗ),
рдХреЙрдиреНрд╕реНрдЯреИрдХреНрд╕ (рд╕реА ++ 11 рдХреЗ рдмрд╛рдж рд╕реЗ, рд▓реЗрдХрд┐рди рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рд╣реБрдЖ), рдореЙрдбреНрдпреВрд▓ рд▓рдЧрднрдЧ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдереЗ, рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдордп рдерд╛ред рдореИрдВ рдХрд╛рдо рдкрд░ рдерд╛ рдФрд░ рдХреБрдЫ рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдмреЛрд░рд▓реИрдВрдб рд╕реА ++ рдмрд┐рд▓реНрдбрд░ 6.0 рдореЗрдВ рдЕрдЧрд▓реЗ рдЖрдВрддрд░рд┐рдХ рдХрдВрдкрд╛рдЗрд▓рд░ рддреНрд░реБрдЯрд┐ рдХреЛ рджреЗрдЦрд╛, рд╕рд╛рде рд╣реА рдмреВрд╕реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рд╛рд░реА рдмрд┐рд▓реНрдб рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рднреА рджреЗрдЦрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рдЖрдк рд╕рдордЭ рдЧрдП рд╣реИрдВ рдХрд┐ рд╕рд╛рдЗрдХрд┐рд▓ рдирд┐рд░реНрдорд╛рдг рдХреА рдпрд╣ рд▓рд╛рд▓рд╕рд╛ рдХрд╣рд╛рдВ рд╕реЗ рдЖрдИ рд╣реИред рд╣рдордиреЗ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдмреЛрд░рд▓реИрдВрдб рд╕реА ++ рдмрд┐рд▓реНрдбрд░ 6.0 рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2010 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреА ++ рд╕рдВрд╕реНрдХрд░рдг 4.4.2 рдпрд╛
QNX рдХреЗ рд▓рд┐рдП рдХрдо рдФрд░ рдХреБрдЫ рд░реАрдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдПред рд╣рдореЗрдВ MacOS рдмрдЦреНрд╢рд╛ рдЧрдпрд╛, рдЬреЛ рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рдПрдХ рдкреНрд▓рд╕ рдерд╛ред рдХреЛрдИ рдЕрдиреНрдп рд╕рдВрдХрд▓рдХ (C ++ 11 рд╕рд╣рд┐рдд) рдЙрди рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдмрд╛рд╣рд░ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВред
"рдФрд░ рд╡рд╣рд╛рдБ рдХреНрдпрд╛ рдЗрддрдирд╛ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ" - рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреБрд░рд╛рдиреЗ рдмрд┐рд▓реНрдбрд░ рдорд╕реНрддрд┐рд╖реНрдХ рдХреЗ рддрд╣рдд рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдердХрд╛рд╡рдЯ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдореЗрдВ рдПрдХ рд╕реЛрдЪрд╛ рдерд╛ред "рд╕рднреА рдХреА рдЬрд░реВрд░рдд рд╣реИ
type_traits ,
рдзрд╛рдЧрд╛ ,
рдореНрдпреВрдЯреЗрдХреНрд╕ , рд╢рд╛рдпрдж
рдХреНрд░реЛрдиреЛ ,
рдирд▓реНрдЯреНрд░реИрдк рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред" рдореИрдВрдиреЗ рддрд░реНрдХ рдХрд┐рдпрд╛ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЧрдпрд╛ред
рдЕрдзреНрдпрд╛рдп 1. рд╡реАрдЖрдИрдПрдо рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рд╡рдбреЗрдВрд╕
рдпрд╣ рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдФрд░ рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИ - рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ рдХрдИ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдереЗ, рдЬреЛ рдореЗрд░реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рдирдХ C ++ 11 рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рд╕рдорд╛рди рдпрд╛ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдмрд┐рдЦрд░реЗ рд╣реБрдП рдереЗ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдпрд╛ рдЙрд╕ рдХреЛрдб рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд╣реА gcc рдФрд░ рдмреВрд╕реНрдЯред рдЗрди рд╕рднреА рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рдХрд░, рдореБрдЭреЗ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рдХрд╛рд░реНрдп, рдХрдХреНрд╖рд╛рдПрдВ, рдореИрдХреНрд░реЛрдЬрд╝ рдорд┐рд▓реЗ рдЬреЛ рдХрд┐ рдПрдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдФрд░ рдкрддрд▓рд╛ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдХрд╛рдо рдХреА рдорд╛рддреНрд░рд╛ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рддреБрд░рдВрдд рд╕рдм рдХреБрдЫ рдФрд░ рд╕рдм рдХреБрдЫ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдирдХ рд╕реА ++ 98 рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдКрдкрд░ "рдРрдб-рдСрди" рдХреЗ рд╡рд┐рдХрд╛рд╕ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рджрд┐рдпрд╛ред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдорд╛рдирдХ рдХрд╛ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдкрд╛рд▓рди рдирд╣реАрдВ рдерд╛, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
nullptr рдЗрд╕ рддрд░рд╣ рджреЗрдЦрд╛:
#define nullptr 0
static_assert рдХреЛ рднреА рдмрд╕ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
#define STATIC_ASSERT(expr) typedef int test##__LINE__##[expr ? 1 : -1];
std :: to_string рдХреЛ
std :: stringstream рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ
std рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
: sstream рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ
рд╕реНрдЯреНрд░реЛрдХ , рдФрд░ рдпрд╣ рд╕рдм рддреБрд░рдВрдд
рдирд╛рдорд╕реНрдерд╛рди std рдореЗрдВ
рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:
#ifndef NO_STD_SSTREAM_HEADER #include <sstream> #else #include <strstream> namespace std {typedef std::strstream stringstream;} #endif namespace std { template<class T> string to_string(const T &t) { stringstream ss; ss << t; return ss.str(); } }
рдРрд╕реЗ "рдЯреНрд░рд┐рдХреНрд╕" рднреА рдереЗ рдЬреЛ рдорд╛рдирдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдереЗ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд░реЛрдЬрдорд░реНрд░рд╛ рдХреЗ рдХрд╛рдо рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐
рд╣рдореЗрд╢рд╛ рдХреЗ
рд▓рд┐рдП рдпрд╛
рдХрд╛рдЙрдВрдЯ рдореИрдХреНрд░реЛ :
#define forever for(;;)
рдЙрд▓рдЯреА рдЧрд┐рдирддреА рдлрд┐рд░ рдПрдХ рдФрд░ рд╕реА + + рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рддрдмреНрджреАрд▓:
template <typename T, std::size_t N> char(&COUNTOF_REQUIRES_ARRAY_ARGUMENT(T(&)[N]))[N];
рдереНрд░реЗрдбреНрд╕ (std рд╕реЗ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓
рдереНрд░реЗрдб ) рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХреБрдЫ рдЫреЛрдЯреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╕рдВрдХрд▓рдХ рдФрд░ рдУрдПрд╕ рдХреЗ рдкреВрд░реЗ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рд╢рд╛рдпрдж рдХреБрдЫ рд╣рдж рддрдХ
type_traits рдкрд╣рд▓реЗ рд╕реЗ рд╣реА C ++ 11 рдорд╛рдирдХ рдХреЗ рд╕рдорд╛рди рдереЗред рдЖрд╡рд╢реНрдпрдХ рдерд╛
std :: enable_if ,
std :: integral_constant ,
std :: is_const рдФрд░ рдЬреИрд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдереЗред
namespace std { template<bool Cond, class Iftrue, class Iffalse> struct conditional { typedef Iftrue type; };
рдпрд╣ рд╕рднреА рдЧреИрд░-рдорд╛рдирдХ рдФрд░ "рд╕рдВрдХрд▓рдХ" рдореИрдХреНрд░реЛрдЬрд╝, рдлрд╝рдВрдХреНрд╢рди, рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓
core.h рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░, рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреЗ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрд╣рд╛рдВ рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ" рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ,
рдХреЛрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдХрд▓рдХ-
рдирд┐рд░реНрднрд░ рдЪреАрдЬреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдореИрдХреНрд░реЛрдЬрд╝ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛ "рд╣реИрдХреНрд╕" (рдорд╛рдирдХ рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд┐рдирд╛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдереЛрдбрд╝рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ), рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдХрд▓рдХ рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ), рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрддрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдФрд░ рд░рд╛рдХреНрд╖рд╕реА (рд▓реЗрдХрд┐рди рд╕реБрдВрджрд░) рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдирддреАрдЬрддрди, рдореБрдЦреНрдп рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХрдорд╛рддреНрд░ рдЪреАрдЬ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП
core.h рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд
nullptr рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрд░рдХреНрд╖рд┐рдд рд╢рдмреНрджреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВ), рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд
static_assert рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди (рдлрд┐рд░ рд╕реЗ, рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рд╢рдмреНрдж рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ C ++ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред 11
char16_t рдФрд░
char32_t ред
рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд┐рдЪрд╛рд░ рд▓рдЧрднрдЧ рдПрдХ рд╕рдлрд▓рддрд╛ рдереА, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдХрд▓рдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рд╛рд░реНрдб рдореИрдХреНрд░реЛрдЬрд╝ рджреНрд╡рд╛рд░рд╛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдореЗрдВ рдЬреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рдЪрд░рдг рдореЗрдВ рд╣реА рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд╣рд▓реЗ рдЕрдзреНрдпрд╛рдп рдХрд╛ рдЕрдВрддред
рджреВрд╕рд░реЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ, рдореИрдВ рд╕рдВрдХрд▓рдХ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд░реНрдгрди рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛, рдЬреАрд╕реАрдПрд▓, рдмреВрд╕реНрдЯ рдФрд░ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдЖрдВрддреЛрдВ рдореЗрдВ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмреИрд╕рд╛рдЦреА рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╕рд╛рде рд╣реА рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рджреЗрдЦрд╛, рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреЗ рдЫрд╛рдкреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдФрд░ рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред