C ++ 11 рдорд╛рдирдХ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдореЗрдВ рдЫрд╣ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдмреАрдд рдЪреБрдХреЗ рд╣реИрдВред рдЖрдк рдирдП рдорд╛рдирдХ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рд╛рдордЧреНрд░реА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рд░рд▓рддрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ, рд╕рдмрд╕реЗ рдкреНрдпрд╛рд░реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдореИрдВ рд▓реИрдореНрдмрдбрд╛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА, рдирдП рдХреНрд╡рд╛рд▓рд┐рдлрд╛рдпрд░, рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдЖрджрд┐ред рд╣рд╛рдВ, рдпреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рд╣реИрдВ рдФрд░, рдХреЛрдИ рднреА рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ, рд╡реЗ рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдФрд░ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкреНрд░рдХрд╛рд╢ рдЙрди рдкрд░ рдирд╣реАрдВ рдЬреБрдЯрд╛, рдФрд░ рдирдпрд╛ рд╕реА ++ 11 рд╣рдореЗрдВ рди рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдиреАрдЪреЗ рдореИрдВ рдХрд╕реНрдЯрдо рд╢рд╛рдмреНрджрд┐рдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ - рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд░реЛрдЬрдорд░реНрд░рд╛ рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред
рд╢рд╛рдмреНрджрд┐рдХ рдХреНрдпрд╛ рд╣реИ?
рдПрдХ рд╢рд╛рдмреНрджрд┐рдХ рдХреБрдЫ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ рдЬреЛ рдПрдХ рд╡рд╕реНрддреБ рдмрдирд╛рддрд╛ рд╣реИред рд╕рд╛рд╣рд┐рддреНрдп рди рдХреЗрд╡рд▓ C ++ 11 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдП, рд╡реЗ C ++ 03 рдореЗрдВ рднреА рдереЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЪрд░рд┐рддреНрд░, рд╕реНрдЯреНрд░рд┐рдВрдЧ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЖрджрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдмреНрджрд┐рдХ рд╣реИрдВред
'x';
рдпреЗ рд╕рднреА рд╢рд╛рдмреНрджрд┐рдХ рд╣реИрдВред рд╢рд╛рдмреНрджрд┐рдХ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЗрд╕реЗ рд╕рдордЭ рд▓рд┐рдпрд╛ рд╣реИред рдпрд╣ C ++ 11 рдкрд░ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
C ++ 11 рдореЗрдВ рдХрд╕реНрдЯрдо рд╢рд╛рдмреНрджрд┐рдХ
рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдирдпрд╛ рдорд╛рдирдХ рдХрд╕реНрдЯрдо рд╢рд╛рдмреНрджрд┐рдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╢рд╛рдмреНрджрд┐рдХреЛрдВ рдХреА рджреЛ рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ рд╣реИрдВ:
рдирд┐рд░реНрдорд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдЪреНрдЪреЗ рд╢рд╛рдмреНрджрд┐рдХ рдФрд░
рд╢рд╛рдмреНрджрд┐рдХ (рдкрдХреЗ рд╣реБрдП) ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╕реА ++ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкреНрд░рддреНрдпрдп рд╢рд╛рдмреНрджрд┐рдХ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╢рд╛рдмреНрджрд┐рдХ рдЙрдкрд╕рд░реНрдЧ (рдЬреИрд╕реЗ
0x ), рдпрд╛ рдЙрдкрд╕рд░реНрдЧ-рдкреНрд░рддреНрдпрдп (рдЬреИрд╕реЗ
"" ) рдмрдирд╛рдирд╛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рд╣рд┐рддреНрдп
рдЪрд▓реЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╢рд╛рдмреНрджрд┐рдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рджреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
рд╢рд╛рдмреНрджрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛:
42_suffix;
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:
- рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╢рд╛рдмреНрджрд┐рдХ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ
unsigned long long
рд▓реЗрддрд╛ рд╣реИ - рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╢рд╛рдмреНрджрд┐рдХ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ
long double
рд▓реЗрддрд╛ рд╣реИ
рдЗрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдПрдХ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реЗ рднрд╛рд╖рд╛ рдорд╛рдирдХ рджреНрд╡рд╛рд░рд╛
рдЕрдирд┐рд╡рд╛рд░реНрдп рдФрд░ рдЕрдиреБрдореЛрджрд┐рдд рд╣реИрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд╛рдмреНрджрд┐рдХ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдорд┐рдирдЯреЛрдВ рдХреЛ рд╕реЗрдХрдВрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред
unsigned long long operator "" _min(unsigned long long minutes) { return minutes * 60; }
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рд╣рд┐рддреНрдп
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╢рд╛рдмреНрджрд┐рдХ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
OutputType operator "" _suffix(const char* str, size_t size); OutputType operator "" _suffix(const wchar_t* str, size_t size); OutputType operator "" _suffix(const char16_t* str, size_t size); OutputType operator "" _suffix(const char32_t* str, size_t size);
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ:
"1234"_suffix;
C- рд╢реИрд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ
std::string
рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╢рд╛рдмреНрджрд┐рдХ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
std::string operator "" s(const char* str, size_t size) { return std::string(str, size); }
рдХрдЪреНрдЪреЗ рд╢рд╛рдмреНрджрд┐рдХ
рдЦреИрд░, рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрд╣ рдХрдЪреНрдЪреЗ рд╢рд╛рдмреНрджрд┐рдХ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╣реИред рдХрдЪреНрдЪреЗ рд╢рд╛рдмреНрджрд┐рдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИрдВ:
OutputType operator "" _suffix(const char* literalString);
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╢рд╛рдмреНрджрд┐рдХ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ рдЬрдм рдЗрдирдкреБрдЯ рдирдВрдмрд░ рдХреЛ рд╡рд░реНрдг рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╛рдиреА рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
OutputType operator "" _x(unsigned long long); OutputType operator "" _y(const char*); 1234_x;
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╢рд╛рдмреНрджрд┐рдХ рдЕрд░реНрдереЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдПрдХ рд╢рд╛рдмреНрджрд┐рдХ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рджрд╢рдорд▓рд╡ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
unsigned long long operator "" _b(const char* str) { unsigned long long result = 0; size_t size = strlen(str); for (size_t i = 0; i < size; ++i) { assert(str[i] == '1' || str[i] == '0'); result |= (str[i] - '0') << (size - i - 1); } return result; }
рдХрдЪреНрдЪреЗ рд╢рд╛рдмреНрджрд┐рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИред рдпрд╣
рд╡реИрд░реЗрдбрд┐рдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ:
template <char...> OutputType operator "" _b();
рд╡реИрд░рд┐рдПрдбрд┐рдХ рдЯреЗрдореНрдкрд▓реЗрдЯ- рдЖрдзрд╛рд░рд┐рдд рд╢рд╛рдмреНрджрд┐рдХ рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рджрд╢рдорд▓рд╡ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рд╕рдорд╛рди рдмрд╛рдЗрдирд░реА рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
template <char... bits> struct to_binary; template <char high_bit, char... bits> struct to_binary<high_bit, bits...> { static_assert(high_bit == '0' || high_bit == '1', "Not a binary value!"); static const unsigned long long value = (high_bit - '0') << (sizeof...(bits)) | to_binary<bits...>::value; }; template <char high_bit> struct to_binary<high_bit> { static_assert(high_bit == '0' || high_bit == '1', "Not a binary value!"); static const unsigned long long value = (high_bit - '0'); }; template <char... bits> constexpr unsigned long long operator "" _b() { return to_binary<bits...>::value; }
рдЪреМрдХрд╕ рдкрд╛рдардХ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реИ:
"рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдЪреНрдЪрд╛ рд╢рд╛рдмреНрджрд┐рдХ рдФрд░ рдПрдХ рд╢рд╛рдмреНрджрд┐рдХ рджреЛрдиреЛрдВ рдмрдирд╛рддреЗ рд╣реИрдВ? рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд┐рд╕ рд╢рд╛рдмреНрджрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛? тАЭ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдорд╛рдирдХ рд╕рдЯреАрдХ рдЙрддреНрддрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рдо рдореЗрдВ рд╢рд╛рдмреНрджрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ:
operator "" _x (unsigned long long)
рдпрд╛ operator "" _x (long double)`
operator "" _x (const char* raw)
operator "" _x <'c1', 'c2', ... 'cn'>
рдпрд╣ рдЬрд╛рдирдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╢рд╛рдмреНрджрд┐рдХ рдкреНрд░рдгрд╛рд▓реА рд╢рд╛рдмреНрджрд┐рдХ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
f ) рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рд╢рд╛рдмреНрджрд┐рдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
long operator "" f(long double value) { return long(value); }
рдирд┐рд╖реНрдХрд░реНрд╖
рдЧреЛрдЗрдВрдЧ рдиреЗрдЯрд┐рд╡ 2012 рдореЗрдВ
рдмреНрдпреЛрд░реНрди рд╕реНрдЯреНрд░реИрд╕реЗрдк рдиреЗ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрдкрдпреЛрдЧреА рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ред рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рддрдереНрдп рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЧрд▓рддрд┐рдпреЛрдВ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рднреА рдХрдо рдХрд░рддрд╛ рд╣реИред
Speed sp1 = 100m / 9.8s;
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╢рд╛рдмреНрджрд┐рдХ рддрдВрддреНрд░
рдХреБрдЫ рдорд╛рдорд▓реЛрдВ
рдореЗрдВ рдПрдХ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг
рд╣реИ ред рдХрд╣реАрдВ рднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреЛ рдмрд╛рд░ рд╕реЛрдЪреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдХрдкрдЯреА рд╣реИрдВ: рд╡реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...
- рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдХреЛ рдХреИрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдП, рдФрд░ рдЗрд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛рдП;
- рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЖрдк рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреИрд╕реЗред
рдкреБрдирд╢реНрдЪ:рдХрд╕реНрдЯрдо рд╢рд╛рдмреНрджрд┐рдХ
gcc 4.7 рдФрд░
рдХреНрд▓реИрдВрдЧ 3.1 рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред