Godot: рдЧреЛрдбреЛрдЯ рдореЗрдВ рд╕реА++ рдХреА рд╕реНрдерд┐рддрд┐

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рдЬреБрд▓ре░ 2017  ┬╖  65рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: godotengine/godot

рдЧреЛрдбреЛрдЯ рдореЗрдВ рд╣рдо рдЕрднреА рднреА C++ 98/03 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рддрдп рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдореЗрдВ рдЕрднреА рднреА рдЗрд╕рд╕реЗ рдЪрд┐рдкрдХреЗ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдпрд╛ рддреЛ рд╣рдо рдХреБрдЫ рдЖрдзреБрдирд┐рдХ рд╕реА ++ (рд╕реА ++ 11/14/17 рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ 20) рд╕рд╛рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЬрдм рдЧреЛрдбреЛрдЯ рдХреЛ рд╢реБрд░реВ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рд╕реА ++ 03 рд╕рдмрд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдерд╛ рдФрд░ рд╡рд░реНрд╖реЛрдВ рдмрд╛рдж рдЙрд╕ рд╢реИрд▓реА (рдорд╛рдирдХ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг, рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рдмрдЪрд╛рд╡, рдЖрджрд┐) рдХреЛ рдХреБрдЫ рдХрдВрдкрд╛рдЗрд▓рд░реЛрдВ рдкрд░ рд╕рдВрдЧрддрддрд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ (рдХреБрдЫ рдХрдВрд╕реЛрд▓, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдЬреИрд╕рд╛ рдХреА рдореИрдВ рдЬрдирддрд╛ рд╣реВрдБ)ред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЗрди рдЪрд┐рдВрддрд╛рдУрдВ рдХреА рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЗрдЯрдо (рдЗрд╕ рд╕реВрдЪреА рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдмрдврд╝рддреЗ рд░рд╣рдирд╛ рдпрд╛ рдХреБрдЫ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдирд╛ рд╣реИ; рдмрд╕ рдкрд╣рд▓реЗ рд╡рд┐рдЪрд╛рд░-рдордВрдерди рдХрд░реЗрдВ):

  • рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕: рдХреНрдпрд╛ рдЧреЛрдбреЛрдЯ рдХрд╕реНрдЯрдо рдкреЙрдЗрдВрдЯрд░/рдСрдмреНрдЬреЗрдХреНрдЯ рдореИрдХреЗрдирд┐рдЬреНрдо рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ? рдХреНрдпрд╛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЛрдбреЛрдЯ рдХреЛ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА? рдХреНрдпрд╛ рд▓рд╛рдн рд▓рд╛рдЧрдд рд╕реЗ рдмрдбрд╝рд╛ рд╣реЛрдЧрд╛?
  • рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ: рдпрд╣рд╛рдВ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди рдХрдореЛрдмреЗрд╢ рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд╕рдорд╛рди рд╣реА рд╣реИрдВред
  • auto , constexpr , lambdas, рдЖрджрд┐ : рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреЛрдИ рднреА рдЖрдзреБрдирд┐рдХ C++ рд╕реБрд╡рд┐рдзрд╛ рдЬреЛ рд▓реЗрдЦрди рдХреЛрдб рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИ рдФрд░/рдпрд╛ рд╡рд░реНрддрдорд╛рди рдХреЛрд░ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдХреБрдЫ рдореМрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред
  • рдорд╛рдирдХ рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡реНрд╕ : C++ рдЕрдм рдорд╛рдирдХ рдереНрд░реЗрдбрд┐рдВрдЧ, рдкрд░рдорд╛рдгреБ, рдореЗрдореЛрд░реА рдмреИрд░рд┐рдпрд░ рдЖрджрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рд╣рдореЗрдВ рдХрд╕реНрдЯрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реИ?
  • рдПрд╕рдЯреАрдПрд▓/рдмреВрд╕реНрдЯ/рдЕрдиреНрдп : рдХреНрдпрд╛ рдХрд╕реНрдЯрдо рдХрдВрдЯреЗрдирд░реЛрдВ рд╕реЗ рдПрдХ рдЕрдЪреНрдЫреЗ рдкреНрд░рд╕рд┐рджреНрдз рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдХреБрдЫ рд▓рд╛рдн рдорд┐рд▓реЗрдЧрд╛? рд░рдЦрд░рдЦрд╛рд╡, рдкреНрд░рджрд░реНрд╢рди, рдЕрдиреБрдХреВрд▓рддрд╛ рдЖрджрд┐ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдбрд┐рд╕/рдлрд╛рдпрджреЗред
  • register , рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ "рдЯреНрд░рд┐рдХреНрд╕", рдЖрджрд┐ : рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЕрдзрд┐рдХ рдкрд░рдлреЙрд░реНрдореЗрдВрдЯ рдХреЛрдб рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╕рд╛рдорд╛рдиред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдпрд╛ рддреЛ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдЙрдирдХрд╛ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рднреА рдЦрд░рд╛рдм рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреМрди рд╕рд╛ рдЧрд┐рд░рд╛рдирд╛ рд╣реИ? рдХреМрди рд╕рд╛ рд░рдЦрдирд╛ рд╣реИ?
  • рдЖрджрд┐,

рдЫреЛрдЯреЗ рдмрджрд▓рд╛рд╡ рдЬрд▓реНрджреА рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡ (рдЗрд╕рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдХрдм рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП? рдЧреЛрдбреЛрдЯ 4.0? рдпрд╛ рдЬреИрд╕реЗ рд╣реА рдЧреЛрдбреЛрдЯ 3.0 рд╕реНрдерд┐рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ?

рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рдиреЗ рджреЗрдВ: @reduz , @punto-, @akien-mga, @karroffel , @bojidar-bg, @BastiaanOlij , @Falessред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рдЕрдкрдиреЗ 2 (рдпрд╛ 20) рд╕реЗрдВрдЯ рдХреЛ рдЧреЛрдбреЛрдЯ рдФрд░ рдЙрд╕рдХреЗ рдХреЛрдбрдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдирдП рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЧреЛрдбреЛрдЯ рдХреЗ рд▓рд┐рдП _Battle for Wesnoth_ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреА рджреЗрдЦрд░реЗрдЦ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЙрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдм, рдлреНрд░рдВрдЯ рдПрдВрдб (рд╕рдВрдкрд╛рджрдХ рдФрд░ рдЬреАрдбреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреАрдЖрдИ) рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ! рдХреБрдЫ рдЦреБрд░рджреБрд░реЗ рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдиреЗ рдЕрдм рддрдХ рд╣рдореЗрдВ рдЕрдЪреНрдЫреА рдЧрддрд┐ рд╕реЗ рдкреНрд░рдЧрддрд┐ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рд╣реИред рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдпрд╣ рднреА рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рд╣рдо (рдЯреАрдо) рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдмреИрдХ рдПрдВрдб (рдЗрдВрдЬрди) рдХреЗ рд▓рд┐рдП рдкреИрдЪ рдХрд╛ рдпреЛрдЧрджрд╛рди рджреЗрдВрдЧреЗред рдЙрд╕ рдЕрдВрдд рддрдХ, рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореИрдВрдиреЗ рдЧрд┐рдЯ рд░реЗрдкреЛ рдХреЛ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдФрд░ рд╕реА ++ рдореЗрдВ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдордирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ ... рдореИрдВ рдереЛрдбрд╝рд╛ рдирд┐рд░рд╛рд╢ рд╣реВрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рд╡реЗрд╕реНрдиреЛрде рдХреЗ рдкреБрд░рд╛рдиреЗ рдХрд╕реНрдЯрдо рдЗрдВрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдмрдбрд╝реЗ рд╕реА ++ рдХреЛрдбрдмреЗрд╕ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реИред рдЗрд╕реЗ рднреА C++03 рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди C++11 рдФрд░ рдмрд╛рдж рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЖрдзреБрдирд┐рдХ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЕрдм рдпрд╣ C++14 рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдореИрдВрдиреЗ рдЙрд╕ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдкреНрд░рдпрд╛рд╕ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ (рдЕрдХреНрд╕рд░ рдереЛрдбрд╝рд╛ рдмрд╣реБрдд рдЬреЛрд╢ рд╕реЗ) рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдиреЗ рд╣рдорд╛рд░реЗ рдХреЛрдбрдмреЗрд╕ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрдардиреАрдп рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИред рджреА, рдореИрдВрдиреЗ рдХрднреА рднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реА ++ 03 рдХреЛрдбрдмреЗрд╕ рдХреЗ рд╕рд╛рде рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛; рдореИрдВрдиреЗ рдЖрдзреБрдирд┐рдХ C++ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ C++ рд╕реАрдЦрд╛ред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд┐ auto , рд░реЗрдВрдЬ-рдлреЙрд░, рдФрд░ рд▓реИрдореНрдмреНрдбрд╛ рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдХрдо рдкрдардиреАрдп рдмрдирд╛рддреА рд╣реИрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЕрдЬреАрдм рд╣реИред

auto рд▓реЗрдВ рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЗрд╕рдХрд╛ рдЕрддреНрдпрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдПрдХ рдЯрди рд╡реИрдз рдЙрдкрдпреЛрдЧ рднреА рд╣реИред рд╕рдмрд╕реЗ рдЖрдо рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЬрд┐рд╕реЗ рд╣рдордиреЗ auto рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдерд╛ рдЬрдм рд╣рдордиреЗ рд╡реЗрд╕реНрдиреЛрде рдХреЛрдбрдмреЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдерд╛, рдЬреЛ рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реВрдк рдХреЗ рд▓рд┐рдП рдерд╛ред рдкрд╣рд▓реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХреБрдЫ рд╣реЛрдЧрд╛:

for(std::vector<T>::iterator foo = container.begin(); foo != container.end(); ++foo) {}

рдЬреЛ рдЧрдиреНрджрд╛ рд╣реИ! рдЬрд┐рди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╣рдордиреЗ рдпрд╣ рдХрд┐рдпрд╛:

for(auto foo = container.begin(); foo != container.end(); ++foo) {}

рд╣рд╛рдВ, рдЕрдм рдЖрдк рд╕реНрдкрд╖реНрдЯ рдЗрдЯрд░реЗрдЯрд░ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд▓рдЧрднрдЧ рдЗрд╕реЗ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдкрдврд╝реА рд╣реИ, рдХреБрдЫ рдкреЛрд╕реНрдЯ рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЕрдЧрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рдХреБрдЫ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рджреВрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдзреБрдирд┐рдХ рдХреЛрдб рд╕рдВрдкрд╛рджрдХреЛрдВ рдФрд░ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕ рдХреЗ рд╕рд╛рде рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣рдо рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ рд╢реНрд░реЗрдгреА-рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВрдЧреЗ:

for(const auto& foo : container) {}

рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬ рдФрд░ рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рднреАред рдЖрдкрдХреЛ рд▓реВрдк рдХреЗ рдЕрдВрджрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдпрд╛ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЖрдк рдкреВрд░реЗ рдХрдВрдЯреЗрдирд░ рдкрд░ рд▓реВрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдХреЛрдб рд╕реЗ рдЕрдкрд░рд┐рдЪрд┐рдд рд▓реЛрдЧреЛрдВ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд▓реВрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢реБрд░реБрдЖрдд рд╕реЗ рдЕрдВрдд рддрдХ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рд░реЗрдВрдЬ-рдлреЙрд░ рд▓реВрдк рдореЗрдВ auto рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдпрд╣рд╛рдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдн рднреА рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрднреА рднреА рдХрдВрдЯреЗрдирд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╛рдж рд░рдЦрдиреЗ рд╡рд╛рд▓реА рдПрдХ рдХрдо рдЪреАрдЬрд╝ рдмрдирд╛рддрд╛ рд╣реИ! рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреБрдЖрди рдХреЗ рддрд░реНрдХ рдХреЛ рдирд╣реАрдВ рд╕рдордЭ рд╕рдХрддрд╛ рдХрд┐ рдпреЗ рдЪреАрдЬреЗрдВ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдХрдо рдкрдардиреАрдп рдпрд╛ рд╕рдордЭрдиреЗ рдореЗрдВ рдХрдо рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИрдВред рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдареАрдХ рд╡рд┐рдкрд░реАрдд рд╣реИред

рд╕реНрдЯреЗрдЯ рдСрдл рдЧреЛрдбреЛрдЯ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓реИрдореНрдмреНрдбрд╛ рдХрд╛ рднреА рдЬрд┐рдХреНрд░ рдХрд┐рдпрд╛ред рдлрд┐рд░, рдЙрдирдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рднреА рд╣реИрдВ! рд╕реА ++ 11 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╡реЗрд╕реНрдиреЛрде рдХреЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рджреЗрдЦрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рддрд┐рдорд╛рди рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

struct sort_helper {
    operator()(const T& a, const T& B) {
        return a < b;
    }
}

void init() const {
    std::vector<T> foo;
    foo.push_back(T(1));
    foo.push_back(T(2));
    foo.push_back(T(3));

    std::sort(foo.begin(), foo.end(), sort_helper);
}

рд▓рдВрдмрд╛, рдЧрдиреНрджрд╛, рдХреЛрдб рдмреНрд▓реЛрдЯред рдФрд░ рдпрд╣рд╛рдБ рд╣рдордиреЗ C++ 11 рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ:

void init() const {
    std::vector<T> foo {
        T(1),
        T(2),
        T(3),
    };

    std::sort(foo.begin(), foo.end(), [](const T& a, const T& b) { return a < b; });
}

рдмрд╕ рдпрд╣реА рд╕рдмрд╕реЗ рдЖрдо рдорд╛рдорд▓рд╛ рд╣реИ! рдФрд░ рд╣рд╛рдБ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЯреА рдХреЗ рд▓рд┐рдП operator< рднреА рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ std::sort рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реА рдмрд╛рдд рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рджреЛрдмрд╛рд░рд╛, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЖрдзреБрдирд┐рдХ рд╕реА ++ рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рд╕реАрдЦрд╛ рдФрд░ рд▓рдЧрднрдЧ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ auto , рд░реЗрдВрдЬ-рдлреЙрд░, рдФрд░ рд▓реИрдореНрдмреНрдбрд╛ рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЬрд╣рд╛рдВ рдЙрдкрдпреБрдХреНрдд рд╣реЛ рдкреИрд░ рдореЗрдВ рдЦреБрдж рдХреЛ рдЧреЛрд▓реА рдорд╛рд░ рд░рд╣рд╛ рд╣реИред

рдЬреЛ рдореБрдЭреЗ рдореЗрд░реЗ рдЕрдЧрд▓реЗ рдмрд┐рдВрджреБ рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЧреЛрдбреЛрдЯ рдПрд╕рдЯреАрдПрд▓ рдХреЗ рдмрдЬрд╛рдп рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрдИ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреА рдЪрд┐рдВрддрд╛ auto рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреЛрдб рдкрдардиреАрдпрддрд╛ рд╣реИ, рддреЛ рдПрд╕рдЯреАрдПрд▓ рд╡рд╛рд▓реЗ рдкрд░ рдХрд╕реНрдЯрдо рдХреЛрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рд╣реИ! рдХреБрдЫ рджрд┐рдиреЛрдВ рдкрд╣рд▓реЗ, рдореИрдВ рдХреЛрдбрдмреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд░рд╣реЗ рдереЗ:

container.push_back(T(args));

рдЕрдм, рдпрд╣ рдЕрдХреНрд╖рдо рд╣реИред push_back (рдХрдо рд╕реЗ рдХрдо std::vector рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ) рдПрдХ рдХреЙрдиреНрд╕ рд╕рдВрджрд░реНрдн рд▓реЗрддрд╛ рд╣реИ; рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдСрдкрд░реЗрдЯрд░ рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдореЗрдВ рдкрд░рд┐рдгрдд рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдЙрдиреНрд╣реЗрдВ emplace_back рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдЪ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ ... рд▓реЗрдХрд┐рди рддрдм рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдкреВрд░рд╛ рдХреЛрдбрдмреЗрд╕ рдХрд╕реНрдЯрдо рдХрдВрдЯреЗрдирд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛

рд╡реЗрд╕реНрдиреЛрде рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рд╛рде рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдФрд░ рдПрдХ рдирдП рдЗрдВрдЬрди (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЧреЛрдбреЛрдЯ) рдХреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдореЗрдВ рдкреНрд░рдореБрдЦ рдпреЛрдЧрджрд╛рди рдХрд╛рд░рдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рдерд╛ рдХрд┐ рд╡реЗрд╕реНрдиреЛрде рдиреЙрдЯ рдЗрдирд╡реЗрдВрдЯреЗрдб рд╣рд┐рдпрд░ рд╕рд┐рдВрдбреНрд░реЛрдо рд╕реЗ рдХрд╛рдлреА рд╣рдж рддрдХ рдкреАрдбрд╝рд┐рдд рдерд╛ред рдЬрдмрдХрд┐ рд╣рдордиреЗ рдмреВрд╕реНрдЯ рдЬреИрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рд╣рдорд╛рд░реА рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╕реНрдЯрдо рдереА, рд╣рдорд╛рд░реА рдпреВрдЖрдИ рдЯреВрд▓рдХрд┐рдЯ рдХрд╕реНрдЯрдо рдереА, рд╣рдорд╛рд░реА рдбреЗрдЯрд╛/рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╕реНрдЯрдо рдереА .... рдЖрдк рд╕рдордЭ рдЧрдПред рдЧреЛрдбреЛрдЯ рдкреЛрд░реНрдЯ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░-рддреНрд╡рд░рд┐рдд рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА (рдФрд░ рдЕрд╕рдлрд▓) (рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ рд╣рдо рд╕реАрдкреАрдпреВ-рдЖрдзрд╛рд░рд┐рдд рд╕рддрд╣ / рд╕реНрдкреНрд░рд╛рдЗрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рдереЗред 2019 рдореЗрдВред рд╣рд╛рдВ, рдореБрдЭреЗ X_X рдкрддрд╛ рд╣реИ)ред рдПрд╕рдбреАрдПрд▓ рдХреЗ Texture рдПрдкреАрдЖрдИ рдореЗрдВ рд╢реЗрдбрд░ рд╕рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдерд╛, рдФрд░ рд╢реЗрдбрд░ рд╕рдкреЛрд░реНрдЯ рдХреА рдЬрд░реВрд░рдд рдереАред рдЕрдВрдд рдореЗрдВ, рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рд░реЗрдВрдбрд░рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛, рдЬрдмрдХрд┐ рд╕рдВрднрд╡ рд╣реЛ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░рдЦрд░рдЦрд╛рд╡ рдХрд╛ рдмреЛрдЭ рдбрд╛рд▓реЗрдЧрд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдореБрдЦреНрдп рджреЗрд╡ рдереЗ, рдФрд░ рдУрдкрдирдЬреАрдПрд▓ (рдпрд╛ рд╡рд▓реНрдХрди рдЕрдЧрд░ рд╣рдореЗрдВ рдХрднреА рдУрдЬреАрдПрд▓ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ) рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд┐рд╕реА рдХреЛ рдвреВрдВрдврдирд╛ рд╕рд┐рд░реНрдл рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рджрд░реНрдж рд╣реЛрддрд╛ рдЬрдм рдЧреЛрдбреЛрдЯ рдЬреИрд╕реЗ рдЗрдВрдЬрди рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдЪреНрдЫрд╛, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрдирд╛рдП рд░рдЦрд╛ рд░реЗрдВрдбрд░рд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдмрдЬрд╛рдпред

рдореИрдВ рдЗрд╕реЗ рд▓рд╛рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдШрд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рдВ, рдЖрдк рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдХреЗ рдЕрдкрдиреЗ рдмрд╛рдЗрдирд░реА рдЖрдХрд╛рд░ рдХреЛ рдереЛрдбрд╝рд╛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд░рдЦрд░рдЦрд╛рд╡ рдХрд╛ рднрд╛рд░реА рдмреЛрдЭ рднреА рдЙрдард╛рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЙрди push_back рдХреЙрд▓ рдХреЛ emplace_back рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдирд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдХрдо рд▓рдЯрдХрд╛ рд╣реБрдЖ рдлрд▓ рд╣реИ рдЬреЛ рдХреЛрдб рдХреЛ рдХреНрд▓реАрдирд░ рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рдирдХрд╛рд░реА рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдХрд╕реНрдЯрдо vector рдкреНрд░рдХрд╛рд░ рд╣реИ, рдпрджрд┐ рдЖрдк рдЗрди-рдкреНрд▓реЗрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдХрд┐рд╕реА рдХреЛ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдФрд░ рдЕрдиреНрдп рд╕рднреА рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рднреА!

рдЗрд╕рд╕реЗ рднреА рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╡реЗрд╢ рдореЗрдВ рдмрд╛рдзрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЧреЛрдбреЛрдЯ рдХреЛрдбрдмреЗрд╕ рдХреЛ рд╕реА++ рдПрд╕рдЯреАрдПрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦрд╛ред рдЙрди рд╕рд╛рдзрдиреЛрдВ рдХреЛ рдирд╣реАрдВ рдЦреЛрдЬрдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрд╛ рдХрд┐рд╕реА рдФрд░ рдХреЛ рдЕрдм рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдЗрдВрдЬрди рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд╕рд╛рде рдХреМрди рд╕рд╛ рдПрдкреАрдЖрдИ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ std::map рдЪрд╛рд╣рд┐рдП? рдирд╣реАрдВ, рдореБрдЭреЗ dictionary рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдХрдард┐рди рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдирдП рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИред рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╣ рдХреЛрдб рдирд╣реАрдВ рд╣реИ рдЬреЛ рдПрдХ рдЪреАрдЬрд╝ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреВрд╕рд░рд╛ рд╣реИ... рдЕрдкрдардиреАрдп?

рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рд╡реЗрд╕реНрдиреЛрде рдХреА 1.14 рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдФрд░ рд╕реНрдЯреАрдо рдкрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛, рдореИрдВрдиреЗ рдПрдХ рдХрд╕реНрдЯрдо рдХрдВрдЯреЗрдирд░ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ std::list рдерд╛, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ erase() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЕрдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реБрдЖ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдпрд╣рд╛рдБ рдкреНрд░рд╢реНрди рдореЗрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИ ред рдЗрд╕рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдХреЛрдб рдерд╛ рдЬреЛ рдмрд╣реБрдд рд╕рд░рд▓, рд╕рдордЭрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдФрд░ рдХрдо рдЕрдкрд╛рд░рджрд░реНрд╢реА рдерд╛ред

рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рд╕реА ++ 11 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЧреИрд░рдХрд╛рдиреВрдиреА рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдФрд░ рдПрд╕рдЯреАрдПрд▓ рд╡рд╛рд▓реЗ рдкрд░ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЪрд┐рдкрдХреЗ рд░рд╣рдирд╛ рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рдЧреЛрдбреЛрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рдзрд╛ рд╣реЛрдЧреАред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЪреАрдЬреЛрдВ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ (рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЪреАрдЬреЗрдВ рдЕрдм рд╣реИрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреИрдЪ -22 рдХреЗ рд╕рд╛рде рдЦрддреНрдо рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред STL (рд▓реЗрдЧрд░ рдмрд╛рдЗрдирд░реА рд╕рд╛рдЗрдЬрд╝, рдЖрджрд┐) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХрдорд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдХреЗ, рдЖрдк рдирдП C++ рдорд╛рдирдХреЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░-рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдХреНрд▓реАрдирд░ рдХреЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдХрдард┐рди рдФрд░ рдХрдард┐рди рдмрдирд╛ рджреЗрдВрдЧреЗред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рднреА рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдЗрди-рдкреНрд▓реЗрд╕ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рдирд╣реАрдВ рд╣реИред рдореИрдВ

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реА рд░рд╛рдп рдХрд╛ рдпрд╣рд╛рдБ рдмрд╣реБрдд рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рджреВрдВрдЧрд╛ рдЬрд┐рд╕рдиреЗ рдПрдХ рдмрдбрд╝реЗ C++ рдХреЛрдбрдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ C++03 рд╕реЗ рдЖрдзреБрдирд┐рдХ C++ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдХрд╛рдо рд╣реИ, рд▓реЗрдХрд┐рди рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЯреЗрдХреНрд╕реНрдЯрд╡реЙрд▓ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ!

рд╕рднреА 65 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЗрд╕ рдкрд░ рдХрдИ рдмрд╛рд░ рдЪрд░реНрдЪрд╛ рд╣реБрдИ, рд╕рд╛рдорд╛рдиреНрдп рдЙрддреНрддрд░ рд╣реИрдВ:

1) рдХреЛрдбрдмреЗрд╕ рдХреЛ 03 рд╕реЗ рдКрдкрд░ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИрдВред GDNative C++ рдХреЗ рд▓рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╡ рд╣реИред
2) рдПрд╕рдЯреАрдПрд▓/рдмреВрд╕реНрдЯ/рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рддрд░реНрдХ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рд░рд╣рд╛ рд╣реИ: рдП) рдЧреЛрдбреЛрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдЫреЛрдЯреА рдЪреАрдЬреЗрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛рдиреА, рдкрд░рдорд╛рдгреБ рдкреБрдирд░реНрдЧрдгрдирд╛ рдФрд░ рд▓рд┐рдЦрдиреЗ рдкрд░ рдХреЙрдкреА) рдмреА) рдПрд╕рдЯреАрдПрд▓ рдЕрдкрдиреЗ рдмрд╣реБрдд рд▓рдВрдмреЗ рдЙрд▓рдЭрди рд╡рд╛рд▓реЗ рдкреНрд░рддреАрдХреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╡рд┐рд╢рд╛рд▓ рдбреАрдмрдЧ рдкреНрд░рддреАрдХ рдФрд░ рдбреАрдмрдЧ рдмрд╛рдЗрдирд░реА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ

рд╣рдо рд╡реИрд╕реЗ рд╣реА рд░рдЦрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╕рдм рдХреБрдЫ рд╣реИред

рдирд┐рдЬреА рдмрд╛рддрдЪреАрдд рдкрд░ рдореЗрд░реА рдХреБрдЫ рд░рд╛рдп рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛
рдЕрдзрд┐рдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЪрд░реНрдЪрд╛ред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдЗрд╕ рдкрд░ рдЗрддрдиреА рдЪрд░реНрдЪрд╛ рд╣реЛ рдЪреБрдХреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдСрдЯреЛ, рдХреЙрдиреНрд╕реНрдЯреЗрдХреНрд╕ рдФрд░ рдРрд╕реЗ рдХреЛ рднреА рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ?

рдбреНрд░реЙрдк 'рд░рдЬрд┐рд╕реНрдЯрд░'?

рдПрд▓ 18 рдЬреБрд▓рд╛рдИред 2017 1:54 рдЕрдкрд░рд╛рд╣реНрди, "рдЬреБрдЖрди рд▓рд┐рдирд┐рдПрддреНрд╕реНрдХреА" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд╡рд┐рд╡рд░рдг:

рдЗрд╕ рдкрд░ рдХрдИ рдмрд╛рд░ рдЪрд░реНрдЪрд╛ рд╣реБрдИ, рд╕рд╛рдорд╛рдиреНрдп рдЙрддреНрддрд░ рд╣реИрдВ:

  1. рдХреЛрдбрдмреЗрд╕ рдХреЛ 03 рд╕реЗ рдКрдкрд░ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ
    рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВред GDNative C++ рдХреЗ рд▓рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╡ рд╣реИред
  2. рдПрд╕рдЯреАрдПрд▓/рдмреВрд╕реНрдЯ/рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рддрд░реНрдХ рд╣рдореЗрд╢рд╛ рд╕реЗ рд░рд╣рд╛ рд╣реИ
    рд╡рд╣реА: рдП) рдЧреЛрдбреЛрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдЫреЛрдЯреА рдЪреАрдЬреЗрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛рдиреА, рдкрд░рдорд╛рдгреБ
    рд░рд┐рдлрдХрд╛рдЙрдВрдЯ рдФрд░ рдХреЙрдкреА рдСрди рд░рд╛рдЗрдЯ) рдмреА) рдПрд╕рдЯреАрдПрд▓ рд╡рд┐рд╢рд╛рд▓ рдбрд┐рдмрдЧ рдкреНрд░рддреАрдХ рдФрд░ рдбрд┐рдмрдЧ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ
    рдЙрдирдХреЗ рдЕрддреНрдпрдВрдд рд▓рдВрдмреЗ рдЙрд▓рдЭреЗ рд╣реБрдП рдкреНрд░рддреАрдХреЛрдВ рдХреЗ рдХрд╛рд░рдг рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝

рд╣рдо рд╡реИрд╕реЗ рд╣реА рд░рдЦрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╕рдм рдХреБрдЫ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рд╕реВрддреНрд░ рдХреЛ рд▓рд┐рдЦрд╛ рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/godotengine/godot/issues/9694#issuecomment-316041201 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ALQCtipKmepD_1Xw6iRXZ7aGoQlLfiwFks5sPJzqgaJpZM4ObOio
.

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЙрдард╛рдпрд╛ рдХрд┐ рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рдХреЛрдб рдПрдирдЖрдИрдПрдЪ рд╕рд┐рдВрдбреНрд░реЛрдо рд╕реЗ рдЧреНрд░рд╕реНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдЪреНрдЪ-рдЕрдк рдХрд╛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рднреА рд╣рд╛рд░ рдорд╛рди рд▓реЗрдВред

рдХреЛрдб рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдВрднрд╡рдд: рдХрдИ рд╢реНрд░рдо рдШрдВрдЯреЗ рд▓рдЧреЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рджреЗрд╡ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдкрд░ рдЦрд░реНрдЪ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ - рдЗрдВрдЬрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ" (рддрдХрдиреАрдХреА рдЛрдг рдЬреИрд╕реА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдордЭреЗ рдмрд┐рдирд╛) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред

@Marqin рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐:

1) рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЙрдкрдпреЛрдЧреА рд╣реИ рд░реАрдХрд╛рдЙрдВрдЯреЗрдб рдПрдХ, рдмрд╛рдХреА рднрд╛рд╖рд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдирд╕рд┐рдХ рд╣рд╕реНрддрдореИрдереБрди рд╣реИред
2) рд╣рд░ рдЬрдЧрд╣ рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рднрдпрд╛рдирдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдЖрдкрдХреЛ рд╕рдВрджрд░реНрдн рдЪрдХреНрд░ рд╣реЛрдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рд╣реИ рдЬреЛ рд╕реНрдореГрддрд┐ рдХреЛ рд░рд┐рд╕рд╛рд╡ рдХрд░рддрд╛ рд╣реИ
3) рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рд╕рдорд╛рди рд╣реИ, Ref<> , рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдн рдХреЗ рд╕рд╛рде рдХрд┐ рд╣рдо рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд░реЗрдлрд░реЗрдВрд╕рд┐рдВрдЧ рдЧрд┐рдирддреА рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕реА # рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЬреАрд╕реА рд╣реИ

рдЗрд╕рд▓рд┐рдП, рджрд▓реАрд▓ рджреЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджрд▓реАрд▓ рджреЗрдВ рдХрд┐ рд╣рдо рдЕрдкрдиреА рдорд░реНрдЬреА рд╕реЗ рдЪреАрдЬреЗрдВ рддрдп рдХрд░рддреЗ рд╣реИрдВ, рдмрд╕ рдкреВрдЫрд┐рдПред рд╣рдо рдЖрдорддреМрд░ рдкрд░ рд╕реВрдЪрд┐рдд рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рднреА рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИ (рдЙрд╕рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрди рдореЗрдВ рдХреБрдЫ рд╡реИрдХрд▓реНрдкрд┐рдХ рдиреМрдХрд░реА рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдмрд╕ рджреЗрд╡ рдХреЛ gmock /gtest рд╕реНрд╡рдпрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ [рдХреНрд▓реЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред/рдерд░реНрдбрдкрд╛рд░реНрдЯреА])

рдмрд╛рдХреА рднрд╛рд╖рд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдирд╕рд┐рдХ рд╣рд╕реНрддрдореИрдереБрди рд╣реИ

@reduz , рдЗрд╕рдХреЗ рд╕реНрдкрд╖реНрдЯ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдФрд░ рднрд╛рд╖рд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж RAII рдореЗрдореЛрд░реА рдлреНрд░реАрд┐рдВрдЧ рдХреЗ рд╕рд╛рде unique_ptr рдХреИрд╕рд╛ рд╣реИ?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рди рдХреЗрд╡рд▓ рд╕реНрдореГрддрд┐ рдкреНрд░рдмрдВрдзрди, рдмрд▓реНрдХрд┐ рдереНрд░реЗрдбрд┐рдВрдЧ рднреА рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП lock_guard )ред

@RandomShaper рдореИрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХрдИ рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛рдПрдВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдирдП рд╕реА ++ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдХрдо рд╕реНрдкрд╖реНрдЯ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рд╡реГрддреНрддрд┐ рд╣реИред рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХреЛ рдЖрдо рддреМрд░ рдкрд░ рджреВрд╕рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИ (рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреАрд╡рд░реНрдб рджреБрд░реБрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢рд┐рд╖реНрдЯ)ред

рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХрд╛ рджреВрд╕рд░рд╛ рд▓рд╛рдн (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрд░рдЯреАрдЖрдИ рдХреЛ рдХрдо рд▓рд╛рдЧрдд рдХреЗ рд╕рд╛рде рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рдпрд╣ рд╣реИ рдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдмрд╣реБрдд рдЫреЛрдЯреЗ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВред

рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВред рдореИрдВ рдЖрдкрдХреА рдмрд╛рдд рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддрд╛ рд╣реВрдВред рдХреЗрд╡рд▓ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдПрдХ рд╕реНрд╡рд╕реНрде рдмрд╛рдд рд╣реИред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдмрдбрд╝реА рд╡реАрдбрд┐рдпреЛрдЧреЗрдо рдХрдВрдкрдирд┐рдпрд╛рдВ (рдпреВрдмреАрд╕реЙрдлреНрдЯ, рдЖрдИрдЖрдИрдЖрд░рд╕реА) рдиреЗ рдмрдбрд╝реЗ рдХреЛрдб рдмреЗрд╕ рдХреЛ рдЖрдзреБрдирд┐рдХ рд╕реА ++ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЧреЛрдбреЛрдЯ рдХреЗ рд▓рд┐рдП рднреА рдкреВрд░реА рддрд░рд╣ рдЙрдкрдпреБрдХреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдмреЗрд╢рдХ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдмрддрд╛рдпрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рдо/рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЗрд╕рд▓рд┐рдП рд╣рдо рдХрд░ рд╕рдХрддреЗ рдереЗ:

  • рджрд░реНрдж рд░рд╣рд┐рдд рд╕рднреА рдХреЛрдб рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪрд┐рдд рдЙрдкрд╕рдореБрдЪреНрдЪрдп рдЪреБрдиреЗрдВ;
  • рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдирдП рдХреЛрдб рдХреЗ рд▓рд┐рдП "рдЕрдиреБрдореЛрджрд┐рдд" рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЙрдЪрд┐рдд рдЙрдкрд╕рдореБрдЪреНрдЪрдп рдЪреБрдиреЗрдВред

рджреЛрдиреЛрдВ рд╣реА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рдХреЛрдбрд┐рдВрдЧ рд╢реИрд▓реА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рддрд╛рдХрд┐ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рди рд╣реЛ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдХрд╣рд╛ рдерд╛ рдХрд┐ рдпрд╣ auto рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИред

рдмреЗрд╢рдХ, рдЕрдм рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓реА рдЪреАрдЬреЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЬрдм 3.0 рд╕реНрдерд┐рд░ рд╣реЛ рдЬрд╛рдП рдпрд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдмрд┐рдВрджреБ рдкрд░ рдкрд╣рд▓реЗ рд╣реА рддрдп рдХрд░ рд▓рд┐рдпрд╛ рдЬрд╛рдП рддреЛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

@Marqin рдЬреИрд╕рд╛ рдХрд┐ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЧреЛрдбреЛрдЯ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрди рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдирдП рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд▓реЙрдХ рдЧрд╛рд░реНрдб рдХреЛрдб рдХреА рд▓рдЧрднрдЧ 3 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ рдФрд░ рд╣рдордиреЗ рдЗрд╕реЗ C++11+ . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдкрд╣рд▓реЗ рд╣реА рд▓рд╛рдЧреВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ

рдлрд┐рд░, рд╣рдореЗрдВ рдпрд╣ рдХреНрдпреЛрдВ рдорд╛рди рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреБрдЫ рднреА "рдорд╛рдирдХ" 1) рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж 2 рд╕реЗ рдмреЗрд╣рддрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рдЕрдЧрд░ рд╣рдо рдЗрд╕реЗ рд╡реИрд╕реЗ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдмреЗрд╣рддрд░ рд╣реИ? .рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рднреНрд░рд╛рдВрддрд┐ рд╣реИред

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдкреНрд░рд┐рдВрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдФрд░ ostream/istream рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛? рд╣рдорд╛рд░реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреНрд▓рд╛рд╕ рдХреЛ рдмрджрд▓реЗрдВ, рдЬреЛ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдЕрдкрдВрдЧ std::string рдпрд╛ std::wstring рд╕реЗ рдмрджрд▓реЗрдВ?

рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рднреА рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреА рдкреВрд░реНрддрд┐ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреНрдп рд╕рднреА рдЪреАрдЬреЛрдВ рд╕реЗ рдмреЗрд╣рддрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВред рд╡реЗ рдХреЗрд╡рд▓ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡реИрдз рдХрд╛рд░рдг рд╣реИ рддреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦрдирд╛ рдареАрдХ рд╣реИред рд╣рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд╢реНрд╡рд╕реНрдд рд╣реИрдВред

@RandomShaper рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐:

1) рдпрд╣ рд▓рд╛рдн рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдЧрдд рд╣реИред
2) рд╕реА ++ 11+ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдорд╛рдирдХ рддрд░реАрдХрд╛ рдХреИрд╕рд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛ рдЦреБрд▓ рдЬрд╛рдПрдЧреАред рдпрд╣ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЙрдиреНрд╣реЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЬрди рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдПрдХ рджрд┐рди рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬреЗрдВ рд╣реИрдВред
3) рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдирдП рд╕реА ++ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдмрд╣реБрдд рдмрдбрд╝рд╛ рдмрд╛рдЗрдирд░реА рдЖрдХрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕реЗ рдореЗрдВ рдпрд╣ рдЕрд╡рд╛рдВрдЫрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдЗрд╕ рд╕рдордп рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ, рд╣рдо рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдЗрд╕ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдЧреЛрдбреЛрдЯ --std=c++17 рдЬреИрд╕реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЖрдзреБрдирд┐рдХ рд╕реА ++ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓рд╛ рд╕рдХреЗрдВ рдпрджрд┐ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХреЛрдбрдмреЗрд╕ рд╕реЗ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреАрд╡рд░реНрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░реВрдВрдЧрд╛ https://github.com/godotengine/godot/issues/9691

рдХрд┐рд╕реА рддрд░рд╣ рд╕рдВрдмрдВрдзрд┐рдд, рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣реАрдВ рдкрдврд╝рд╛ рд╣реИ рдХрд┐ gcc-6.3 рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ (google
рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ https://github.com/godotengine/godot/issues/7703 рдореЗрдВ рдерд╛)ред рдпрд╣ рдореБрдЭреЗ рдкрд░реЗрд╢рд╛рди рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ gcc-6.3 рдореЗрд░реЗ рдбрд┐рд╕реНрдЯреНрд░реЛ (рдбреЗрдмрд┐рдпрди рд╕реНрдЯреЗрдмрд▓) рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реИред рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдФрд░ рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐?

@efornara рдХреБрдЫ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирдП рд╕реА ++ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдпрд╣ рдареАрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдХреИрди рдХреНрд▓реЛрди рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦрддрд╛ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП etc2comp рдереНрд░рд┐рдбрдкрд╛рд░реНрдЯреА рдХреЛрдб рджреЗрдЦреЗрдВред

@karroffel рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ред

рдпрд╣ рддрдм рдПрдХ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЧреЛрдВрдж рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рдЧреЛрдбреЛрдЯ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдЖрдк рдПрдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдареЛрдХрд░ рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ)ред

рд╡реИрд╕реЗ, рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдФрд░ рдЙрд╕реЗ рдпрд╣ рдкреЛрд╕реНрдЯ рдорд┐рд▓ рдЧрдИ рд╣реИ, рддреЛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ: https://github.com/godotengine/godot/blob/master/modules/etc/SCsub ред рдореИрдВрдиреЗ рдЗрд╕реЗ grep рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкрд╛рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдРрд╕рд╛ рд╕реНрдерд╛рди рд╣реИ рдЬрд╣рд╛рдБ рдЗрд╕ рд╕рдордп рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

c++11 рдХреЛ not-c++11 рдХреЛрдб рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдирд╛ рдЗрддрдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ - http://gcc.gnu.org/wiki/Cxx11AbiCompatibility

@Marqin рдЬрдм рддрдХ рдореИрдВ рд▓рд┐рдВрдХ рдХреЛ рдЧрд▓рдд рдирд╣реАрдВ рд╕рдордЭрддрд╛, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП godot _not_ рдХреЗ рдорд╛рдорд▓реЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХрд╕реНрдЯрдо рдШрдЯрдХреЛрдВ рд╕реЗ рдЪрд┐рдкрдХреЗ рд░рд╣рддрд╛ рд╣реИ:

рд╕реА ++ 98 рднрд╛рд╖рд╛ рдПрдмреАрдЖрдИ-рд╕реА ++ 11 рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ, рд▓реЗрдХрд┐рди рдорд╛рдирдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмреНрд░реЗрдХ рд╕рдВрдЧрддрддрд╛ рдореЗрдВ рдХрдИ рдЬрдЧрд╣ рд╣реИред

рдорд┐рд╢реНрд░рд┐рдд рднрд╛рд╖рд╛рдПрдВ рдХрд╛рдлреА рд╕реБрд░рдХреНрд╖рд┐рдд рджрд┐рдЦрддреА рд╣реИрдВ (рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ, рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ, рдФрд░ рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдЬреЛрдбрд╝реЗ, рд╡реИрдХреНрдЯрд░, рд╕реВрдЪрд┐рдпрд╛рдВ рдЗрддреНрдпрд╛рджрд┐ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

@efornara рд▓рд┐рдВрдХ рдХреБрдЫ рддреГрддреАрдп-рдкрдХреНрд╖ libs рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬреЛ рд╕реА ++ 11 рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧреЛрдбреЛрдЯ рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕реА ++ 03 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

@ рдорд╛рд░рдХрд┐рди рд╣рд╛рдВ, рд▓реЗрдХрд┐рди рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рд▓рд┐рдВрдХ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЬреЛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧреЛрдбреЛрдЯ рд╕реЗ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ std::list<> рдкрд╛рд╕ рдХрд░рдирд╛ред

@reduz рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдЧреЛрдбреЛрдЯ рдХреЗ рдЖрдВрддрд░рд┐рдХ рд░реЗрдлрд░реА <> рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ? рдЧреЛрдбреЛрдЯ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХрдВрдЯреЗрдирд░ рдПрд╕рдЯреАрдПрд▓ рдХреЗ рдХрдВрдЯреЗрдирд░ рд╕реЗ рдХреИрд╕реЗ рднрд┐рдиреНрди рд╣реИрдВ, рдЗрд╕ рдкрд░ рдореБрдЭреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХрд╣рд╛рдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ?

@Marqin рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рд╣реИ:
http://docs.godotengine.org/hi/stable/Development/cpp/core_types.html#containers
рд░реЗрдлрд░реА рдХреЗ рд▓рд┐рдП <> рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрди рдЪреАрдЬреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХреНрдЯрд░ рдХреЛ рдХреИрд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рд╕реБрдЭрд╛рд╡ рдХрд╛ рдмрд╣реБрдд рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рдирдпрд╛ рд╕реА++ рдорд╛рдирдХ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХрд┐рд╕реА рднреА рдЧреЛрдбреЛрдЯ рдЖрдВрддрд░рд┐рдХ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдирд╣реАрдВ рджреВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдмрд╣реБрдд рдХрдо рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдЗрд╕ рд╕рдЯреАрдХ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реА ++ рдХреЗ рд▓рдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдореИрдВ рдЗрд╕реЗ рдирдИ рдЧреЛрдбреЛрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдФрд░ GDNative рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдореИрдВ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рдЖрдзреБрдирд┐рдХ рд╕реА ++ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЧреЛрдбреЛрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред

@reduz рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдХрд╣рд╛ рдерд╛ рд╕реА ++ 11/14/17 рдЖрдкрдХреЛ рдХрдо рд╕реНрдкрд╖реНрдЯ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рджреЗрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдХрдард┐рди рдпрд╣ рд╕реА ++ рдиреНрдпреВрдмреАрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдореА рд╣реИ, рдпрд╣ рд╕реА ++ рдкрд╛рд╡рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИред
рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛ"рдСрдЯреЛ" рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИ, рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕реЛрдЪрддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдмрд┐рдЬрд▓реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреА рдЕрдЪреНрдЫрд╛ рд╣реИред рдпрд╣ рди рдХреЗрд╡рд▓ рдЖрдкрдХреЛ рд╕рдЦреНрдд рдЖрд╡рд╢реНрдпрдХ рди рд╣реЛрдиреЗ рдкрд░ рдмрд╛рд░-рдмрд╛рд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдпрд╣ рдХреБрдЫ рдмрдЧ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рд╕реЗ рднреА рдмрдЪ рд╕рдХрддрд╛ рд╣реИред

FYI рдХрд░реЗрдВ, рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдорд╛рд╕реНрдЯрд░ (godot3) рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реИ:

scons platform=x11 target=debug tools=yes builtin_openssl=true CCFLAGS=-std=c++17

рдбреЗрдмрд┐рдпрди рдЦрд┐рдВрдЪрд╛рд╡ рдкрд░ (gcc-6.3)ред рдХрд╖реНрдЯрдкреНрд░рдж, рд╕реА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╡рд┐рдХрд▓реНрдк рднреА рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рд╕реЗ рднрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕рдм рдЖрд╕рд╛рдиреА рд╕реЗ рдЪрд▓рд╛ рдЧрдпрд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреАрд╡рд░реНрдб рднреА рдкрд░реЗрд╢рд╛рдиреА рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рд╡рд┐рдХрд▓реНрдк рд╡рд╣рд╛рдВ рд╣реИред рдореИрдВ рдЬреЛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рддреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЛ рдкреНрд░рддрд┐рдЧрдорди рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрдпрд╛рди рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ рд╣реБрдП, рдХреБрдЫ рдЯрд╛рдЗрдкреЛ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ред

рдХрд╖реНрдЯрдкреНрд░рдж, рд╕реА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╡рд┐рдХрд▓реНрдк рднреА рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдХреНрдпрд╛ рдЖрдкрдиреЗ CPPFLAGS рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдерд╛?

@ рд╣рд┐рдВрд╕рдмрд╛рд░реНрдЯ рдирд╣реАрдВ, рдореИрдВрдиреЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдореИрдВ рд╕реНрдХреИрди рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХреЗ рдЬреЛ рд╕рдВрднрд╡ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдЙрд╕рдХреЗ рд╕рд╛рде рдЪрд▓рд╛ рдЧрдпрд╛:

$ scons platform=x11 builtin_openssl=true -h | grep FLAGS
CCFLAGS: Custom flags for the C and C++ compilers
CFLAGS: Custom flags for the C compiler
LINKFLAGS: Custom flags for the linker

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╡реИрд╕реЗ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЧреЛрдбреЛрдЯ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди CPPFLAGS рдореБрдЭреЗ рдкреНрд░реАрдкреЛрд╕реЗрд╕рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдкрд░ рдордЬрдмреВрд░ рдХрд░ рджреЗрдЧрд╛ред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ C++ рдХреЗ рд▓рд┐рдП CXXFLAGS рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдкрдиреЗ CPPFLAGS рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ CPPFLAGS рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реА рдФрд░ рд╕реА ++ рджреЛрдиреЛрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

@ m4nu3lf рдЖрдк GDNative рдХреЗ рд╕рд╛рде рдЬреЛ рднреА рд╕реА ++ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, рдХреЛрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рднреА рдЕрд╡рд╕рд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрд╡рд╕рд░ рд╣реИред

рд╢рд╛рдпрдж рд╣рдо рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рдХреА рдкреЗрдЬ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реА ++ 11 рд░реВрдкреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рд╢рд╛рдпрдж рдереНрд░реЗрдбрд┐рдВрдЧ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡реНрд╕ рдФрд░ рдРрд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред

рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди, рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ (рдХрд╣рд╛рд╡рдд рдХреВрд▓реИрдб), рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ LLVM рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдФрд░ рдХрдИ рдЕрдиреНрдп FOSS рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкреИрдЯрд░реНрди, рдпрд╛рдиреА рдирдП рдлреЙрд░-рдЗрдЯрд░реЗрдЯрд░ рдиреЛрдЯреЗрд╢рди рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рд╕рдВрдмрдВрдзрд┐рдд рднрд╛рд╖рд╛ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд▓рд┐рдП рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛, рдХреНрдпреЛрдВрдХрд┐ (рдЪрд▓реЛ рдИрдорд╛рдирджрд╛рд░ рд░рд╣реЗрдВ) рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдЫреЛрдЯрд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рдмрдирд╛рдП рд░рдЦрдирд╛ рдЧреЗрдо рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд╣реИред

рдЖрдк рдЬреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХреЛрдб рд▓рд┐рдЦреЗрдВрдЧреЗ рд╡рд╣ рд╡рд╣ рдХреЛрдб рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рд╣реИред :)

рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рд╕реЗ рдмрд╛рд╣рд░, рдХреНрдпрд╛ рдРрд╕рд╛ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреЛ рдкреБрд░рд╛рдиреЗ C++ рдФрд░ рдирдП C++ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рд╣реЛ? рдХреНрдпрд╛ рд╕реА ++ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ?

рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рд╕реЗ рдмрд╛рд╣рд░, рдХреНрдпрд╛ рдРрд╕рд╛ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреЛ рдкреБрд░рд╛рдиреЗ C++ рдФрд░ рдирдП C++ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рд╣реЛ? рдХреНрдпрд╛ рд╕реА ++ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ?

рдирдпрд╛ C++ 99.99...% рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкреБрд░рд╛рдиреЗ C++ рдХреЗ рд╕рд╛рде рдкреАрдЫреЗ рдХреА рдУрд░ рд╕рдВрдЧрдд рд╣реИ (рдХреЗрд╡рд▓ рд╡реЗ рдЪреАрдЬрд╝реЗрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ рдпрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдЦрд░рд╛рдм-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрдиреНрд╣реЗрдВ рдЕрдм рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдЬреЛ рдХреЗрд╡рд▓ рд╕рдВрдХрд▓рди рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдВрдЧреА, рд▓реЗрдХрд┐рди рдЖрдЬрдХрд▓ рднреА рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ) .

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирдП рд╕реА ++ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рдФрд░ рд╡реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреЗ рд╕реА ++ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рд╡реЗ рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдХреЗрд╡рд▓ рд╡реИрд░рд┐рдПрдбрд┐рдХ рдореИрдХреНрд░реЛрдЬрд╝ рдФрд░ auto рдФрд░ рд▓реИрдореНрдмреНрдбрд╛ рдЬреИрд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ, рдмрд▓реНрдХрд┐ move рдЬреИрд╕реА рджрдХреНрд╖рддрд╛ рд╕реБрд╡рд┐рдзрд╛рдПрдВ рднреА рд╣реИрдВ

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рднреА рдЕрдм рдЖрдзреБрдирд┐рдХ C++17 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореИрдВ рдЧреЛрдбреЛрдЯ рдХреЛ рд╕реА ++ 17 рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдореБрджреНрджрд╛ рддреАрд╕рд░реЗ_рдкрд╛рд░реНрдЯреА рд╕рд╛рдорд╛рди рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ рдЬреЛ auto_ptr рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рдерд╛ (рдЬрд┐рд╕реЗ рд╕реА ++ 17 рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рдЦрд░рд╛рдм рд╣реИ)

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕реА ++ 17 рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реИ, рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬреЛ рд▓реЛрдЧ рд╕реА ++ 17 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╛ рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░, рдЙрди рд▓реЛрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреАрдЖрд░ рд╢реБрд░реВ рдХрд░реЗрдВ ... рдХреЗрд╡рд▓ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реА рдкрд░ рд╣реИ ++03.

рдЕрдХреЗрд▓реЗ рд▓реИрдореНрдмреНрдбрд╛ рдХреА рдХрдореА рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдпрд╣рд╛рдБ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣реА рд╣реИред
рдХрдИ рдмрд╛рд░, рдЧреЛрдбреЛрдЯ рдХреЛ рдбреЗрдЯрд╛ рдХреА рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕реВрдЪреА рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдлрд┐рд░ рдЙрд╕ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред
рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рд╣рд░ рдПрдХ рдореЗрдВ, рдЗрд╕реЗ "for_each" рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕реНрд╡рдпрдВ рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рддрд╛ рд╣реИ, рдХреЛрдб рдХреЛ рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ, рд╕реНрдореГрддрд┐ рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рд▓реИрдореНрдмреНрдбрд╛ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд/рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред (рдФрд░ рдпрд╣ рд╕реА ++ 11 рд╣реИ, рд╣рд░ рдЬрдЧрд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рд▓рд┐рдВрдХреНрдб рд╕реВрдЪреА рдкрд░ рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп рд▓реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╣реА рд╕рдЯреАрдХ рдмрд╛рддред

рдореВрд╡ рдСрдкрд░реЗрдЯрд░ рдмреЗрд╣рддрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдмрд┐рд▓реНрдХреБрд▓ рднрдпрд╛рдирдХ рд▓реЛрдЧреЛрдВ рдХреЛ рдХреБрдЫ рдмреЗрд╣рддрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛рдЯрд╛рдЗрдк (рдЬреИрд╕реЗ "mystring" _hs) рдпрд╛ рдЗрд╕реА рддрд░рд╣, рд╣рдореЗрдВ рдХреЛрдб рдореЗрдВ рд╣рд░ рдЬрдЧрд╣ рд╣реИрд╢ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлреИрд▓рд╛рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬрд╛рдВрдЪ (рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдИрд╡реЗрдВрдЯ рдХреЛрдб рдореЗрдВ рдмрд╣реБрдд рдЖрдо) рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реЛ рдЬрд╛рддреА рд╣реИред

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ std :: рдереНрд░реЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рднрдпрд╛рдирдХ рдЕрдореВрд░реНрддрддрд╛ рд╣реИ), рдПрд╕рдЯреАрдбреА рдкрд░рдорд╛рдгреБ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрджреНрднреБрдд рд╣реИ, рдФрд░ рдЕрддреНрдпрдВрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рдПрд╕рдЯреАрдбреА::рдкрд░рдорд╛рдгреБрдФрд░ рдкрд╕рдВрджред

рдФрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рднреА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕реА ++ 03 рдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рдордЬрдмреВрд░ рдХрд░рдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рддрд╛ рд╣реИ, рдЬрдм рд▓реЛрдЧ рдЖрдзреБрдирд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХреАрдХреГрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЧреЛрдбреЛрдЯ рд╕реА ++ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдПрдХрдорд╛рддреНрд░ рдЧреИрд░-рдЫреЛрдбрд╝реЗ рдЧрдП рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реА ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рддрд░рд╣ рд╣реИ ( рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдорд╛рд▓реВрдо рд╣реИ)

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рд░реВрдврд╝рд┐рд╡рд╛рджреА рд╣реЛрдиреЗ рдФрд░ рдкреВрд░реНрдг рдирд╡реАрдирддрдо рд╕реА ++ рдорд╛рдирдХ рдкрд░ рдирд╣реАрдВ рдЬрд╛рдиреЗ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реА ++ 11 рдХреА рддрд░рд╣ рдХреБрдЫ рд╕реА ++ 14 рдХреА рдХреБрдЫ рд╕рддреНрдпрд╛рдкрд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдФрд░ рдЧреЛрдбреЛрдЯ рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧрд╛ред рд╕реА ++ 11-14 рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИ, рдЬреЛ рдкреАрдПрд╕ 4, рдПрдХреНрд╕рдмреЙрдХреНрд╕, рд╕реНрд╡рд┐рдЪ, рдкреАрд╕реА, рд▓реЛ рдПрдВрдб рдкреАрд╕реА, рдПрдВрдбреНрд░реЙрдЗрдб, рдЖрдИрдУрдПрд╕, рдФрд░ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рд╡реЗрдмрд╕реИрдореНрдк рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдЧреЛрдбреЛрдЯ рдХреЛ рдЦреБрдж рдХреЛ рд╕реАрдорд┐рдд рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рд╡рд╣ рдмрд╣реБрдд рдХрдо рдорд╛рддреНрд░рд╛ рдореЗрдВ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛рдЯрд╛рдЗрдк (рдЬреИрд╕реЗ "mystring" _hs) рдпрд╛ рдЗрд╕реА рддрд░рд╣, рд╣рдореЗрдВ рдХреЛрдб рдореЗрдВ рд╣рд░ рдЬрдЧрд╣ рд╣реИрд╢ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлреИрд▓рд╛рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬрд╛рдВрдЪ (рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдИрд╡реЗрдВрдЯ рдХреЛрдб рдореЗрдВ рдмрд╣реБрдд рдЖрдо) рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реЛ рдЬрд╛рддреА рд╣реИред

рд╕рд╛рде рд╣реА рдпрд╣ рдЖрдкрдХреЛ рд╕реНрд╡рд┐рдЪ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред рдЬреИрд╕реЗ рдореИрдВрдиреЗ рдПрдХ рдлреНрд▓рд╛рдИрд╡реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрд╖реЛрдВ рдкрд╣рд▓реЗ рдПрдХ рдПрдЯрдо рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдпрд╛ рдерд╛:
https://github.com/OvermindDL1/OverECS/blob/master/StringAtom.hpp

рдЗрд╕рдореЗрдВ 32-рдмрд┐рдЯ (5 рд╡рд░реНрдг рдЕрдзрд┐рдХрддрдо, рдпрд╛ 6 рдпрджрд┐ рдЖрдк рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рд░рд┐рдХреЛрдб рдХрд░рддреЗ рд╣реИрдВ), рдФрд░ 64-рдмрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг (10 рдпрд╛ 12 рд╡рд░реНрдг рдЕрдзрд┐рдХрддрдо, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рддрдВрдЧ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдЪреБрдирдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ)ред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рд╡рд░реНрддреА рд╣реИ, рд╕рдВрдХрд▓рди-рд╕рдордп рдкрд░ рдпрд╛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рджрд┐рд╢рд╛ рдореЗрдВ рд░рди-рдЯрд╛рдЗрдо рдкрд░ рд╣реЛрддрд╛ рд╣реИ, рд╕реНрд╡рд┐рдЪ рдЖрджрд┐ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдпреЛрдЧреНрдп ... рдЖрджрд┐ ... рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЙрдкрдпреЛрдЧ:

switch(blah) {
  case "UPDATE"_atom64: ... pass
  case "PHYSUPDATE"_atom64: ... pass
  ...
}

рдПрд▓рдпреВрдП рдХреЛрдб рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╕рдордп рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдФрд░ рд╕реАрдорд╛ рдкрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХрд┐рдпрд╛ред рд╡рд╣ рдлрд╝рд╛рдЗрд▓ рдЗрд╕рдХрд╛ "рдирд╡реАрдирддрдо" рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИ, рдореИрдВрдиреЗ рдкреВрд░реНрдгрд╛рдВрдХ рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдкрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗ (рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░ рдЖрд╡рдВрдЯрд┐рдд-рдХрдо рд╣реИ-> рдкреВрд░реНрдгрд╛рдВрдХ рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рдЪрд▓рддрд╛ рд╣реИ) . рдПрдХ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдпрд╛ рдЬреАрдбреАрдмреА рдлрд╝рд┐рд▓реНрдЯрд░ рдмрдирд╛рдирд╛ рдЫреЛрдЯрд╛ рд╣реИ рдЬреЛ рдПрдЯрдо 64/рдПрдЯрдо 32/рдЬреЛ рднреА рдкреНрд░рдХрд╛рд░ (рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдиреАрдЪреЗ рд╣реИ) рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╕рдордп рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЛ рдЙрд▓рдЯ рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдХреБрдЫ рдЕрдЬреАрдм рд╣реИрд╢ рдорд╛рди рдХреЗ рдмрдЬрд╛рдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рджреЗрдЦ рд╕рдХреЗрдВред

рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ рдмреЗрд╣рдж рдЙрдкрдпреЛрдЧреА рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдкреНрд░рджрд░реНрд╢рди рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдХреЛрдб рдореЗрдВ рдФрд░ рдХреЛрдб рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╕реА ++ 11 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдХреБрдЫ рднреА рдирдпрд╛ рдирд╣реАрдВред

рдХрдо рд╕реЗ рдХрдо рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╕реА ++ 14 рдЧреЛрдбреЛрдЯ рдорд╛рдирдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реА ++ 17 рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ (рдХреБрдЫ рдирдП рдХреЛрдб рдореЗрдВ рдХреБрдЫ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдкреНрд░рджрд░реНрд╢рди рд╕рдВрд╡рд░реНрджреНрдзрди), рд▓реЗрдХрд┐рди рд╕реА ++ 14 рдЕрдм рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдиреНрдпреВрдирддрдо рд╣реИред рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬреАрд╕реАрд╕реА/рдХреНрд▓реИрдВрдЧ/рд╡рд┐рдЬреБрдЕрд▓рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ рдЬреЛ рдХреБрдЫ рднреА рдЕрдм рд╕реА ++ 17 рдЬреБрд░реНрдорд╛рдирд╛ (рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╕реА ++ 20 рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд╕реА ++ 17 рднреА рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рд╢рд╛рдпрдж рдЕрднреА рднреА 'рдЬрд╕реНрдЯ-рдЗрди-рдХреЗрд╕' рдХреЗ рд▓рд┐рдП рд╕реА ++ 14 рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдиреВрдВрдЧрд╛ред

@ OvermindDL1 рд╡рд╣ рдПрдЯрдо рдЪреАрдЬ рдХрдорд╛рд▓ рдХреА рд╣реИ, рдЗрд╕реЗ рдкреНрдпрд╛рд░ рдХрд░реЛред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧреЛрдбреЛрдЯ рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдВ рд╡рд╣ рдЙрд╕ рд╕рдЯреАрдХ рдЪреАрдЬ рдХреЛ рдХрд╛рдлреА рдмрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред

рд╡рд╣ рдкрд░рдорд╛рдгреБ рдЪреАрдЬ рдХрдорд╛рд▓ рдХреА рд╣реИ, рдЗрд╕реЗ рдкреНрдпрд╛рд░ рдХрд░реЛред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧреЛрдбреЛрдЯ рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдВ рд╡рд╣ рдЙрд╕ рд╕рдЯреАрдХ рдЪреАрдЬ рдХреЛ рдХрд╛рдлреА рдмрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред

@ vblanco20-1 рдареАрдХ рд╣реИ рдЕрдЧрд░ рдЧреЛрдбреЛрдЯ рдЗрд╕реЗ рдЪрд╛рд╣рддрд╛ рд╣реИ рддреЛ рд╡реЗ рдХреЛрдб рдХреЛ рдЕрд╡рд╢реЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВред рдпрд╣ (рдФрд░ рдпрд╣ рдкреВрд░реНрд╡рд╡рд░реНрддреА рдлреНрд▓рд╛рдИрд╡реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ) рдиреЗ рдореЗрд░реЗ рдкреБрд░рд╛рдиреЗ рд╕реА ++ рдЗрдВрдЬрди рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЙрдкрдпреЛрдЧ рджреЗрдЦрд╛ рд╣реИред рдпрд╣ рдЫреЛрдЯреЗ рдИрд╡реЗрдВрдЯ рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдерд╛, рдЪреАрдЬреЛрдВ рдореЗрдВ 'рдХреБрдВрдЬреА' рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдЫреЛрдЯреЗ рддрд╛рд░, рдФрд░ рд▓реБрдЖ/рд▓реБрдЖрдЬрд┐рдЯ рдкрд░ рдЖрдЧреЗ рдФрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдЖрд╕рд╛рди рдЖрд╕рд╛рди рдерд╛, рд╕рд╛рде рд╣реА рдбреАрдмрдЧрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдПрдХ рдмрдбрд╝реА рдорджрдж рдереЗред

рдЕрдХреЗрд▓реЗ рд▓реИрдореНрдмреНрдбрд╛ рдХреА рдХрдореА рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдпрд╣рд╛рдБ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣реА рд╣реИред

рдХреНрдпрд╛ рдореИрдВ рдЕрдХреЗрд▓рд╛ рд╣реВрдВ рдЬреЛ рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рд▓реИрдореНрдмреНрдбрд╛ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХреЛрдб рдХреЛ рдкрдврд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИ?

@ рдлрд╝реИрд▓реЗрд╕ : рдирд╣реАрдВ, рдЖрдк рдЕрдХреЗрд▓реЗ рдирд╣реАрдВ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реИрдореНрдмреНрдбрд╛ рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд░рд╣реА рд╣реИ, рдПрдХ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдПрдХрд┐рдпрди рдиреЗ рд╕реА ++ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдКрдкрд░ рдирд╣реАрдВ рдЙрдард╛рдпрд╛ рд╣реИред

рд▓реИрдореНрдмреНрдбрд╛ рдХреЗрд╡рд▓ рдЫреЛрдЯреЗ рдЗрдирд▓рд╛рдЗрди рдХрд╛рд░реНрдп рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЖрдк рдЙрди рдкрд░ "рдкрдврд╝рдиреЗ рдореЗрдВ рдХрдард┐рди" рдХреНрдпрд╛ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╡реЗ рд╕реЙрд░реНрдЯ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк рддреБрд▓рдирд╛ рдлрд╝рдВрдХреНрд╢рди, рдпрд╛ рдмрд╛рдХреА рдПрд╕рдЯреАрдбреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рднреЗрдЬрддреЗ рд╣реИрдВред рд╡реЗ рдЖрдкрдХреЛ рд╕реНрдореГрддрд┐ рдХреЛ рдмрдЪрд╛рдиреЗ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рднреА рджреЗрддреЗ рд╣реИрдВ, рдЕрд╕реНрдерд╛рдпреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж (рдЬреЛ рдСрдХреНрдЯреНрд░реА рдФрд░ рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдХрдИ рдмрд╛рд░ рд╣реЛрддрд╛ рд╣реИ)

рдФрд░ рдПрд╕рдЯреАрдбреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде, рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдорд▓реНрдЯреАрдереНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╕рдорд╛рдирд╛рдВрддрд░, рд╕рдорд╛рдирд╛рдВрддрд░ рд╕реЙрд░реНрдЯ рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдВрдЪрдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдПрдХ рдкреВрд░реНрдг рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЙрдиреНрд╣реЗрдВ "рдЕрдЬреАрдм" рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬрдм рд╡реЗ рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛, рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдореЗрдВ рдЗрддрдирд╛ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреБрдЫ рдРрд╕рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд▓рд╛рдЧреВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ:

//old linked list iteration
while (scenario->instances.first()) {
            instance_set_scenario(scenario->instances.first()->self()->self, RID());
        }
//new (just abstracts above)
scenario->instances.for_each([]( RID& item  ){
    instance_set_scenario(item, RID());
});

рдпрд╣ рджреВрд╕рд░рд╛ рдорд╛рдорд▓рд╛ рднреА рд╣реИ, рдХрдИ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЧрдпрд╛

//old. Note the 1024 array, wich is hard size, and is wasting memory

int culled = 0;
Instance *cull[1024];
culled = scenario->octree.cull_aabb(p_aabb, cull, 1024);
for (int i = 0; i < culled; i++) {

    Instance *instance = cull[i];
    ERR_CONTINUE(!instance);
    if (instance->object_ID == 0)
        continue;

    instances.push_back(instance->object_ID);
}

//NEW. not implemented yet. 0 memory usage, can be inlined, and doesnt have a maximum size. 
//Its also shorter and will be faster in absolutely every case compared to old version.

scenario->octree.for_each_inside_aabb(p_aabb, [](Instance* instance){       
    ERR_CONTINUE(!instance);
    if (instance->object_ID == 0)
        continue;
    instances.push_back(instance->object_ID);
});

рдХреБрдЫ рдРрд╕рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд▓рд╛рдЧреВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ:

рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд▓рд╛рдн рд╣реИ ...

рдпрд╣ рдПрдХ рдкреВрд░реНрдг рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЙрдиреНрд╣реЗрдВ "рдЕрдЬреАрдм" рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬрдм рд╡реЗ рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛, рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдореЗрдВ рдЗрддрдирд╛ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@ vblanco20-1 рдареАрдХ рд╣реИ, рдореИрдВ рдЦреБрдж рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
рд▓реЛрдЧ рдЖрдорддреМрд░ рдкрд░ рдЪреАрдЬреЗрдВ рд▓рд┐рдЦ рджреЗрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ:

my_arr.push(
    [par1, par2, par3]{
      somefunc(par1, par2, par3);
    }
);

рдФрд░ рдлрд┐рд░, рдХреБрдЫ рдЕрдиреНрдп рдЬрдЧрд╣реЛрдВ рдкрд░:

func = my_arr.front();
func();

рдЬреЛ, рдЬрдм рдЖрдк рдЗрд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреЛрдИ рд╕реБрд░рд╛рдЧ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рди рд╣реА рдХреНрдпрд╛ рджреЗрдЦрдирд╛ рд╣реИред рдпрд╣ рдареАрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЙрд╕ рд╕рд░рдгреА рдХреЛ рдПрдХрд╛рдзрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░рд╛ рдХреЛрдб рдЕрдкрдардиреАрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

@ рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдЖрдк рд▓реИрдореНрдмреНрдбрд╛ рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдЙрд╕ рддрд░рд╣ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рд▓реИрдореНрдмреНрдбрд╛ рдХрд╛ "рдкреВрд░реЗ рд╕рдордп" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдирдХрд╛ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рд╡реЗ рднреА рдПрдХ рдмрдбрд╝рд╛ рдЦрддрд░рд╛ рдмрди рдЬрд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЧрдП рдЪрд░ рд▓реИрдореНрдмреНрдбрд╛ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рдордп рддрдХ рд╡реИрдз рд╣реЛрдирд╛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреИрдкреНрдЪрд░рд┐рдВрдЧ рдП рдкреЙрдЗрдВрдЯрд░ рдФрд░ рдлрд┐рд░ рд▓реИрдореНрдмреНрдбрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛рдирд╛, рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреЙрдЗрдВрдЯрд░ рд▓рдЯрдХ рдЬрд╛рдПрдЧрд╛)ред рдореИрдВ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд▓реИрдореНрдмреНрдбрд╛ рдХрд╛ рдмрдЪрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд╣рд╛рдВ рдЖрдк рдЙрдиреНрд╣реЗрдВ "рддреБрд░рдВрдд" рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

for_each рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, for_each рдЖрдВрддрд░рд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдкреНрд░рддрд┐ рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдЪрд░реЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддреЗ рд╣реИрдВ), рдпрд╣ рдЕрдзрд┐рдХ "рдЕрдкрд╛рд░рджрд░реНрд╢реА" рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдЬреЛ рдПрдХ рджреЗрд╡ рдХреЛ "рдЖрд╕рд╛рдиреА рд╕реЗ-рдИрд╢" рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ " рдПрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди рд╕рд╛ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдЧрд▓реЗ рд▓рдЧрд╛рдХрд░, рдЖрдк "рдЙрдкрдпреЛрдЧ" рдкрд░рдд рдХреЛ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди рд░рдЦрддреЗ рд╣реБрдП рдЕрд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛ рднреА рдХрдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ (рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдирд╛) "рд╕реНрдкрд╖реНрдЯ" рдмрдирд╛ рд░рд╣рд╛ рд╣реИред рдмрд╕ "рдкрд╣рд▓реЗ () -> рд╕реНрд╡рдпрдВ () -> рд╕реНрд╡рдпрдВ" рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рд╕реБрдзрд╛рд░ рд╣реИред

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд╛рдн рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдЬрдорд╛ рд╣реЛрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк "unordered_for_each" рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ рдЬреЛ рдиреЛрдбреНрд╕ рдХреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдХреНрд░рдо рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рддрд╛ рд╣реИ (рдЖрд╡рдВрдЯрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдпрд╛ рдпрджрд┐ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА рд╢реАрд░реНрд╖ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ рдПрдХ рд╕рд░рдгреА), рдпрд╛ "reverse_for_each"ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ "рдвреВрдВрдвреЗрдВ" рдпрд╛ "рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ" рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рднреАред (рдореИрдВ рдПрд╕рдЯреАрдбреА :: рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдирд╣реАрдВ рдХрд░рддрд╛, рдХрдо рд╕реЗ рдХрдо рд╕реА ++ 20 рддрдХ рдЬрдм рд░реЗрдВрдЬ рд╡рд┐рд▓рдп рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИ)

рд▓реИрдореНрдмреНрдбрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕реА ++ 11 рд╕реЗ рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрдВрдЬрди рдореЗрдВ рдПрдкрд┐рдХ рдЧреЗрдореНрд╕ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рд╡рд╛рд▓реА рдкрд╣рд▓реА рдЪреАрдЬ рдереА, рд╕рд╛рде рд╣реА рд╕реЙрд░реНрдЯ, рдкрд╛рд░реНрдЯреАрд╢рди, рдлрд╝рд┐рд▓реНрдЯрд░, рд░рд┐рдореВрд╡рдСрд▓, рдлрд╛рдЗрдВрдб рдЗрддреНрдпрд╛рджрд┐ рдЬреИрд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдЕрдкрдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рдеред рддрдм рд╕реЗ рд╡реЗ рдЕрдХреНрд╕рд░ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рджреЛрдиреЛрдВ рдЗрдВрдЬрди рдХреЛрдб рдФрд░ рдЧреЗрдордкреНрд▓реЗ рдХреЛрдб рдореЗрдВ

рдХреВрд▓, рдХрдо рд╕реЗ рдХрдо рд╣рдо рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рд▓реИрдореНрдмреНрдбрд╛ рдХреБрдЫ рдкрд╡рд┐рддреНрд░ рдХрдВрдШреА рдмрдирд╛рдиреЗрд╡рд╛рд▓реЗ рдХреА рд░реЗрддреА рдирд╣реАрдВ рд╣реИрдВ
рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ, рдФрд░ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдирд┐рдпрдо рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рди рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдореИрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╢реЛрдз рдХрд░реВрдБрдЧрд╛ред

рд╢рдирд┐рд╡рд╛рд░, 8 рджрд┐рд╕рдВрдмрд░, 2018 рдХреЛ 17:06 vblanco20-1 < рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@Faless https://github.com/Faless рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ
рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдЖрдк рд▓реИрдореНрдмреНрдбрд╛ рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдЙрд╕ рддрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд)ред

рд▓реИрдореНрдмреНрдбрд╛ рдХрд╛ "рдкреВрд░реЗ рд╕рдордп" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдирдХрд╛ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рд╣реЛрдЧрд╛
рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рд╡реЗ рдХрдмреНрдЬрд╛ рдХрд┐рдП рдЧрдП рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рдЦрддрд░рд╛ рднреА рдмрди рдЬрд╛рддреЗ рд╣реИрдВ
рдЬрдм рддрдХ рдЖрдк рд▓реИрдореНрдмреНрдбрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддрдм рддрдХ рд╡реИрдз рд╣реЛрдирд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рд▓реИрдореНрдмреНрдбрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдирд╛ рдФрд░ рдлрд┐рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛рдирд╛,
рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреЙрдЗрдВрдЯрд░ рд▓рдЯрдХ рдЬрд╛рдПрдЧрд╛)ред рдореИрдВ рдХреЗрд╡рд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реИрдореНрдмреНрдбрд╛ рдХрд╛ рдмрдЪрд╛рд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ, рдЬрд╣рд╛рдВ рдЖрдк рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
"рд╣рд╛рдереЛрдВ рд╣рд╛рде"ред

For_each рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, for_each рдЖрдВрддрд░рд┐рдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдкреНрд░рддрд┐ рдкреНрд░рддрд┐рд░рдХреНрд╖рд┐рдд рд╣реИ
рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдЪрд░ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддреЗ рд╣реИрдВ), рддреЛ рдпрд╣ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рдЕрдзрд┐рдХ "рдЕрдкрд╛рд░рджрд░реНрд╢реА" рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ (рдЬреЛ рдПрдХ рджреЗрд╡ рдХреЛ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ
"рдЖрд╕рд╛рдиреА рд╕реЗ-рдИрд╢" рдПрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдПрдХ
рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдЕрдкрдирд╛рдХрд░ рдЖрдк рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдЬреЛ "рдЙрдкрдпреЛрдЧ" рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП рдЕрдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ
рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдкрд░рддред

рдпрд╣ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛ рднреА рдХрдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЛрдб рдХреЛ рдФрд░ рдЕрдзрд┐рдХ "рд╕реНрдкрд╖реНрдЯ" рдмрдирд╛рддрд╛ рд╣реИ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ (рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рдирд╛)ред рдмрд╕ рдЫреБрдЯрдХрд╛рд░рд╛ "
first()->self()->self " рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рд╕реБрдзрд╛рд░ рд╣реИред

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд╛рдн рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдЬрдорд╛ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ
рдЖрдк "unordered_for_each" рдЬреИрд╕реА рдЪреАрдЬрд╝реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ рдЬреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд╣реЛрддреА рд╣реИрдВ
рдиреЛрдбреНрд╕ рдХреНрд░рдо рдореЗрдВ рд╡реЗ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╣реИрдВ (рдЖрд╡рдВрдЯрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдпрд╛ рдпрджрд┐
рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ), рдпрд╛ "reverse_for_each"ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЪреАрдЬреЗрдВ
рдЬреИрд╕реЗ "рдвреВрдВрдвреЗрдВ" рдпрд╛ "рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ"ред (рдореИрдВ std::algorithms рдХреЛ рдЗрддрдирд╛ рдЕрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛, at
рдХрдо рд╕реЗ рдХрдо рд╕реА ++ 20 рддрдХ рдЬрдм рд░реЗрдВрдЬ рд╡рд┐рд▓рдп рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛
рдЖрдкрдХреА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ)

рд▓реИрдореНрдмреНрдбрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕реА ++ 11 рд╕реЗ рдПрдкрд┐рдХ рдЧреЗрдореНрд╕ рдХреА рдЕрдиреБрдорддрд┐ рд╡рд╛рд▓реА рдкрд╣рд▓реА рдЪреАрдЬ рдереА
рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрдВрдЬрди, рд╕реЙрд░реНрдЯ рдЬреИрд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдЕрдкрдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде,
рд╡рд┐рднрд╛рдЬрди, рдлрд╝рд┐рд▓реНрдЯрд░, рд╕рднреА рдирд┐рдХрд╛рд▓реЗрдВ, рдЦреЛрдЬреЗрдВ, рдЖрджрд┐ред рддрдм рд╕реЗ рд╡реЗ рдЕрдХреНрд╕рд░ рд╣реЛрддреЗ рд╣реИрдВ
рдЗрдВрдЬрди рдХреЛрдб рдФрд░ рдЧреЗрдордкреНрд▓реЗ рдХреЛрдб рджреЛрдиреЛрдВ рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/godotengine/godot/issues/9694#issuecomment-445474001 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ABnBbvBTxThAh0v8AfFCdGsSv2HFnEz6ks5u2_GKgaJpZM4ObOio
.

рд╕реА ++ 11 рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЬреЛ рдХреЛрдбрдмреЗрд╕ рдХреА рд░рдЦрд░рдЦрд╛рд╡ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧреА:

  • override рдФрд░ final
  • рд▓реВрдк рдХреЗ рд▓рд┐рдП рд░реЗрдВрдЬ-рдЖрдзрд╛рд░рд┐рдд
  • nullptr
  • рджреГрдврд╝рддрд╛ рд╕реЗ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рдЧрдгрдирд╛
  • explicit рдХреАрд╡рд░реНрдб

C++11 рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЬреЛ рдЬреАрд╡рди рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВрдЧреА:

  • рд╕рдордХреЛрдг рдмреНрд░реИрдХреЗрдЯ (рдЕрдм рдФрд░ рдирд╣реАрдВ Vector<Vector> > )

[[nodiscard]] (рд╕реА++17?) рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ рдирдИ рдЪреАрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдзреБрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдЕрдкрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ 1 рдпрд╛ 2 рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рд╕реА ++ 11 рд╕реЗ рдкрд░реЗ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдирд╣реАрдВ рджреВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд▓рд╛рдн рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред
рдЬреИрд╕реЗ-рдЬреИрд╕реЗ C++ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддрд╛ рд╣реИ, stl рдмрдбрд╝рд╛ рдФрд░ рдмрдбрд╝рд╛ рд╣реЛрддрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реИрдХрдбрд╝реЛрдВ рд▓рд╛рдЗрдиреЗрдВ рдЬреБрдбрд╝ рдЬрд╛рддреА рд╣реИрдВред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред

рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред

рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рдХреЛрдб рдЬреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЙрд╕рдХрд╛ рдХреЛрдИ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдмрдЧ рдпрд╛ рдРрд╕рд╛ рди рд╣реЛ, рдФрд░ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдпрд╣ рдЕрдВрддрд┐рдо рдмрд╛рдЗрдирд░реА рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ рдЙрдЪрд┐рдд рдЪрд╛рд▓ рд╢рдмреНрджрд╛рд░реНрде рд╣реЛрдиреЗ рд╕реЗ рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИ, рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рдкреБрд░рд╛рдирд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЕрджреНрдпрддрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╡реГрджреНрдзрд┐ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИред

@ OvermindDL1 рд╣рд╛рдВ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдРрд╕рд╛ рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕реЗ рджреЗрдЦреЗрдВ: https://twitter.com/zeuxcg/status/108578185156891432
рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕реЛрд╢рд▓ рдореАрдбрд┐рдпрд╛ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдИ рдорд╛рдорд▓реЗ рджреЗрдЦреЗ рд╣реИрдВред рдпрд╣ "рд╢реВрдиреНрдп рд▓рд╛рдЧрдд рдЕрдореВрд░реНрддрддрд╛" рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдЬреИрд╕рд╛ рдЗрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

@lupoDharkael рд╡рд╣ рдЯреНрд╡рд┐рдЯрд░ рдереНрд░реЗрдб (рдПрдХ рдмрд╛рд░ рдЬрдм рдпрд╣ рдЕрдВрдд рдореЗрдВ рд▓реЛрдб рд╣реЛ рдЧрдпрд╛, рдкрд╡рд┐рддреНрд░ рд╡рд╛рд╣ рдЯреНрд╡рд┐рдЯрд░ рдПрдХ рднрдпрд╛рдирдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ ... рдореИрдВ рдЗрд╕реЗ рднреВрд▓рддрд╛ рд░рд╣рддрд╛ рд╣реВрдВ ...) рдХреЗрд╡рд▓ рд╕рдВрдХрд▓рди рдЧрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ libstdc ++ рдореЗрдВ math.h C ++ 17 рдореЛрдб рдореЗрдВ рдмрдбрд╝рд╛ рд╣реИ (рдЬрд╣рд╛рдВ libc++ рдореЗрдВ рд╡рд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ) рдмреЗрд╣рддрд░ рд░рдирдЯрд╛рдЗрдо рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЕрдзрд┐рднрд╛рд░ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рднреА рд╕рдВрдХрд▓рди рдЬреЛ math.h рдореЗрдВ рд▓рд╛рддрд╛ рд╣реИ, рдореЗрдВ рд▓рдЧрднрдЧ 300ms рдХрд╛ рдмрдврд╝рд╛ рд╣реБрдЖ рд╕рдВрдХрд▓рди рд╕рдордп рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдирдП stdlib рдХреЗ рдмрдЬрд╛рдп рдЙрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреБрд░рд╛рдиреЗ stdlib рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд░рдирдЯрд╛рдЗрдо рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрддрд╛рддрд╛ рд╣реИ (рдЬрд┐рдирдореЗрдВ рд╕реЗ рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЙрдЪреНрдЪ рд╕реА ++ рдореЛрдб рдореЗрдВ рддреЗрдЬрд╝ рджреЗрдЦрд╛ рд╣реИ, рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдорд╛рди рдЧрддрд┐)ред рддреЛ рдЬрд╣рд╛рдВ It's not as "zero cost abstractions" as it should. рд╕рд╡рд╛рд▓ рд╣реИ, рдореБрдЭреЗ рдЕрднреА рднреА рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд░рдирдЯрд╛рдЗрдо рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЛрдВ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд▓рд┐рдВрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдзрд╛рдЧреЗ рдХрд╛ рдЗрд╕рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреБрд░рд╛рдиреЗ stdlib рдореЗрдВ рдЧрдгрд┐рдд рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп рд╕рдВрдХрд▓рди рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ 300ms рдХреА рд╡реГрджреНрдзрд┐ рдереА (рдореИрдВ рд╣реВрдБ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рд╕рдВрдХрд▓рд┐рдд рд╡рд╕реНрддреБ рдХреЗ рд╕рдВрдХрд▓рди рд╕рдордп рдореЗрдВ рдПрдХ рдлреНрд▓реИрдЯ 300ms рд╡реГрджреНрдзрд┐ рдХреЗ рдореБрджреНрджреЗ рдХреЛ рд╡реИрд╕реЗ рднреА рджреЗрдЦрддрд╛ рд╣реВрдВ)?

рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ред
рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд▓рд╛рдЧрдд рдХрд╛ рдПрдХ рдХрд╛рд░рдг рд╣реИ рд▓реЗрдХрд┐рди рдмрдбрд╝рд╛ рд╕рдВрдХрд▓рди рд╕рдордп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд░реЛрдзреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рд▓реИрдкрдЯреЙрдк рд╣реИ рдФрд░ рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд╣рд░ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд╛рдж рдХрдВрдкрд╛рдЗрд▓+рд▓рд┐рдВрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдЪрд┐рдд рд▓рд╛рдн рдХреЗ рдмрд┐рдирд╛ рдЗрд╕реЗ рдФрд░ рднреА рдмрдврд╝рд╛рдирд╛, рдХреЗрд╡рд▓ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рд▓реИрдкрдЯреЙрдк рд╣реИ рдФрд░ рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд╣рд░ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд╛рдж рдХрдВрдкрд╛рдЗрд▓+рд▓рд┐рдВрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ ccache рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рд┐рдВрдХрд┐рдВрдЧ рдкрд░ рдЦрд░реНрдЪ рд╣реЛрдЧрд╛ред рдЖрдк рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ld рдХреЗ рдмрдЬрд╛рдп gold рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдпрд╛ рджреЛ рд╕реЗрдХрдВрдб рд╢реЗрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ lld рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдХреЗ рдЗрд╕реЗ рдФрд░ рднреА рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

рдУрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореИрдВ рдмреИрдХрд┐рдВрдЧ рдмрд┐рд▓реНрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ ccache рдФрд░ рдирд┐рдВрдЬрд╛ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ (рдпрджрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП cmake рдпрд╛ рддреЛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ), рд╡реЗ рджреЛрдиреЛрдВ рдЗрддрдирд╛ рд╕рдордп рдмрдЪрд╛рддреЗ рд╣реИрдВ!

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХрддрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣реА рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдПрдХ рдирдИ unity.cpp рдпрд╛ рдРрд╕реА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рднреА рд╕реАрдкреАрдкреА рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖрдорддреМрд░ рдкрд░ рдкреНрд░рддрд┐ 'рдореЙрдбреНрдпреВрд▓' рдПрдХ рдПрдХрддрд╛ рд╕реАрдкреАрдкреА рдлрд╝рд╛рдЗрд▓ рд╣реЛрддреА рд╣реИред рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реНрдореГрддрд┐ рдХреЛ рдХрдо рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рджрд░реНрдЬрди рдпрд╛ рддреЛ рд╣реИ, рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рдЙрд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдореГрддрд┐ рдХреЗ рдмрджрд▓реЗ рдореЗрдВ рдпрд╣ рджреЛрдиреЛрдВ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рд▓рд┐рдВрдХ рдЗрддрдиреА рддреЗрдЬрд╝реА рд╕реЗ рдХрд░рддрд╛ рд╣реИред рд╡реЗ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрдо рдЙрдкрдпреЛрдЧреА рд╣реИрдВ рдФрд░ рд░рд┐рд▓реАрдЬ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд╣реИрдВред

рдвреЗрд░ рдореЗрдВ рдПрдХ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП:
static_assert

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдВрдШ SpatialMaterial::MaterialKey рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЖрдХрд╛рд░ uint64_t рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕реЗ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╡рд╣рд╛рдВ рдПрдХ static_assert(sizeof(MaterialKey) == sizeof(uint64_t)) рдердкреНрдкрдбрд╝ рдорд╛рд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред

рджреВрд╕рд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореИрдиреБрдЕрд▓ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рд▓рд┐рдЦреЗ рдмрд┐рдирд╛ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реЗрдл-рдХрд╛рдЙрдВрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд┐рдирд╛рд╢ рдкрд░ рдЙрдЪрд┐рдд рд╕рдлрд╛рдИ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП unique_ptr рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдореИрдВ рдЕрдкрдиреЗ 2 (рдпрд╛ 20) рд╕реЗрдВрдЯ рдХреЛ рдЧреЛрдбреЛрдЯ рдФрд░ рдЙрд╕рдХреЗ рдХреЛрдбрдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдирдП рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЧреЛрдбреЛрдЯ рдХреЗ рд▓рд┐рдП _Battle for Wesnoth_ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреА рджреЗрдЦрд░реЗрдЦ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЙрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдм, рдлреНрд░рдВрдЯ рдПрдВрдб (рд╕рдВрдкрд╛рджрдХ рдФрд░ рдЬреАрдбреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреАрдЖрдИ) рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ! рдХреБрдЫ рдЦреБрд░рджреБрд░реЗ рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдиреЗ рдЕрдм рддрдХ рд╣рдореЗрдВ рдЕрдЪреНрдЫреА рдЧрддрд┐ рд╕реЗ рдкреНрд░рдЧрддрд┐ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рд╣реИред рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдпрд╣ рднреА рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рд╣рдо (рдЯреАрдо) рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдмреИрдХ рдПрдВрдб (рдЗрдВрдЬрди) рдХреЗ рд▓рд┐рдП рдкреИрдЪ рдХрд╛ рдпреЛрдЧрджрд╛рди рджреЗрдВрдЧреЗред рдЙрд╕ рдЕрдВрдд рддрдХ, рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореИрдВрдиреЗ рдЧрд┐рдЯ рд░реЗрдкреЛ рдХреЛ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдФрд░ рд╕реА ++ рдореЗрдВ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдордирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ ... рдореИрдВ рдереЛрдбрд╝рд╛ рдирд┐рд░рд╛рд╢ рд╣реВрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рд╡реЗрд╕реНрдиреЛрде рдХреЗ рдкреБрд░рд╛рдиреЗ рдХрд╕реНрдЯрдо рдЗрдВрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдмрдбрд╝реЗ рд╕реА ++ рдХреЛрдбрдмреЗрд╕ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реИред рдЗрд╕реЗ рднреА C++03 рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди C++11 рдФрд░ рдмрд╛рдж рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЖрдзреБрдирд┐рдХ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЕрдм рдпрд╣ C++14 рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдореИрдВрдиреЗ рдЙрд╕ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдкреНрд░рдпрд╛рд╕ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ (рдЕрдХреНрд╕рд░ рдереЛрдбрд╝рд╛ рдмрд╣реБрдд рдЬреЛрд╢ рд╕реЗ) рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдиреЗ рд╣рдорд╛рд░реЗ рдХреЛрдбрдмреЗрд╕ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрдардиреАрдп рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИред рджреА, рдореИрдВрдиреЗ рдХрднреА рднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реА ++ 03 рдХреЛрдбрдмреЗрд╕ рдХреЗ рд╕рд╛рде рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛; рдореИрдВрдиреЗ рдЖрдзреБрдирд┐рдХ C++ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ C++ рд╕реАрдЦрд╛ред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд┐ auto , рд░реЗрдВрдЬ-рдлреЙрд░, рдФрд░ рд▓реИрдореНрдмреНрдбрд╛ рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдХрдо рдкрдардиреАрдп рдмрдирд╛рддреА рд╣реИрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЕрдЬреАрдм рд╣реИред

auto рд▓реЗрдВ рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЗрд╕рдХрд╛ рдЕрддреНрдпрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдПрдХ рдЯрди рд╡реИрдз рдЙрдкрдпреЛрдЧ рднреА рд╣реИред рд╕рдмрд╕реЗ рдЖрдо рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЬрд┐рд╕реЗ рд╣рдордиреЗ auto рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдерд╛ рдЬрдм рд╣рдордиреЗ рд╡реЗрд╕реНрдиреЛрде рдХреЛрдбрдмреЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдерд╛, рдЬреЛ рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реВрдк рдХреЗ рд▓рд┐рдП рдерд╛ред рдкрд╣рд▓реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХреБрдЫ рд╣реЛрдЧрд╛:

for(std::vector<T>::iterator foo = container.begin(); foo != container.end(); ++foo) {}

рдЬреЛ рдЧрдиреНрджрд╛ рд╣реИ! рдЬрд┐рди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╣рдордиреЗ рдпрд╣ рдХрд┐рдпрд╛:

for(auto foo = container.begin(); foo != container.end(); ++foo) {}

рд╣рд╛рдВ, рдЕрдм рдЖрдк рд╕реНрдкрд╖реНрдЯ рдЗрдЯрд░реЗрдЯрд░ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд▓рдЧрднрдЧ рдЗрд╕реЗ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдкрдврд╝реА рд╣реИ, рдХреБрдЫ рдкреЛрд╕реНрдЯ рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЕрдЧрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рдХреБрдЫ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рджреВрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдзреБрдирд┐рдХ рдХреЛрдб рд╕рдВрдкрд╛рджрдХреЛрдВ рдФрд░ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕ рдХреЗ рд╕рд╛рде рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣рдо рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ рд╢реНрд░реЗрдгреА-рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВрдЧреЗ:

for(const auto& foo : container) {}

рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬ рдФрд░ рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рднреАред рдЖрдкрдХреЛ рд▓реВрдк рдХреЗ рдЕрдВрджрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдпрд╛ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЖрдк рдкреВрд░реЗ рдХрдВрдЯреЗрдирд░ рдкрд░ рд▓реВрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдХреЛрдб рд╕реЗ рдЕрдкрд░рд┐рдЪрд┐рдд рд▓реЛрдЧреЛрдВ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд▓реВрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢реБрд░реБрдЖрдд рд╕реЗ рдЕрдВрдд рддрдХ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рд░реЗрдВрдЬ-рдлреЙрд░ рд▓реВрдк рдореЗрдВ auto рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдпрд╣рд╛рдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдн рднреА рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрднреА рднреА рдХрдВрдЯреЗрдирд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╛рдж рд░рдЦрдиреЗ рд╡рд╛рд▓реА рдПрдХ рдХрдо рдЪреАрдЬрд╝ рдмрдирд╛рддрд╛ рд╣реИ! рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреБрдЖрди рдХреЗ рддрд░реНрдХ рдХреЛ рдирд╣реАрдВ рд╕рдордЭ рд╕рдХрддрд╛ рдХрд┐ рдпреЗ рдЪреАрдЬреЗрдВ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдХрдо рдкрдардиреАрдп рдпрд╛ рд╕рдордЭрдиреЗ рдореЗрдВ рдХрдо рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИрдВред рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдареАрдХ рд╡рд┐рдкрд░реАрдд рд╣реИред

рд╕реНрдЯреЗрдЯ рдСрдл рдЧреЛрдбреЛрдЯ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓реИрдореНрдмреНрдбрд╛ рдХрд╛ рднреА рдЬрд┐рдХреНрд░ рдХрд┐рдпрд╛ред рдлрд┐рд░, рдЙрдирдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рднреА рд╣реИрдВ! рд╕реА ++ 11 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╡реЗрд╕реНрдиреЛрде рдХреЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рджреЗрдЦрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рддрд┐рдорд╛рди рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

struct sort_helper {
    operator()(const T& a, const T& B) {
        return a < b;
    }
}

void init() const {
    std::vector<T> foo;
    foo.push_back(T(1));
    foo.push_back(T(2));
    foo.push_back(T(3));

    std::sort(foo.begin(), foo.end(), sort_helper);
}

рд▓рдВрдмрд╛, рдЧрдиреНрджрд╛, рдХреЛрдб рдмреНрд▓реЛрдЯред рдФрд░ рдпрд╣рд╛рдБ рд╣рдордиреЗ C++ 11 рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ:

void init() const {
    std::vector<T> foo {
        T(1),
        T(2),
        T(3),
    };

    std::sort(foo.begin(), foo.end(), [](const T& a, const T& b) { return a < b; });
}

рдмрд╕ рдпрд╣реА рд╕рдмрд╕реЗ рдЖрдо рдорд╛рдорд▓рд╛ рд╣реИ! рдФрд░ рд╣рд╛рдБ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЯреА рдХреЗ рд▓рд┐рдП operator< рднреА рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ std::sort рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реА рдмрд╛рдд рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рджреЛрдмрд╛рд░рд╛, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЖрдзреБрдирд┐рдХ рд╕реА ++ рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рд╕реАрдЦрд╛ рдФрд░ рд▓рдЧрднрдЧ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ auto , рд░реЗрдВрдЬ-рдлреЙрд░, рдФрд░ рд▓реИрдореНрдмреНрдбрд╛ рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЬрд╣рд╛рдВ рдЙрдкрдпреБрдХреНрдд рд╣реЛ рдкреИрд░ рдореЗрдВ рдЦреБрдж рдХреЛ рдЧреЛрд▓реА рдорд╛рд░ рд░рд╣рд╛ рд╣реИред

рдЬреЛ рдореБрдЭреЗ рдореЗрд░реЗ рдЕрдЧрд▓реЗ рдмрд┐рдВрджреБ рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЧреЛрдбреЛрдЯ рдПрд╕рдЯреАрдПрд▓ рдХреЗ рдмрдЬрд╛рдп рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрдИ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреА рдЪрд┐рдВрддрд╛ auto рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреЛрдб рдкрдардиреАрдпрддрд╛ рд╣реИ, рддреЛ рдПрд╕рдЯреАрдПрд▓ рд╡рд╛рд▓реЗ рдкрд░ рдХрд╕реНрдЯрдо рдХреЛрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рд╣реИ! рдХреБрдЫ рджрд┐рдиреЛрдВ рдкрд╣рд▓реЗ, рдореИрдВ рдХреЛрдбрдмреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд░рд╣реЗ рдереЗ:

container.push_back(T(args));

рдЕрдм, рдпрд╣ рдЕрдХреНрд╖рдо рд╣реИред push_back (рдХрдо рд╕реЗ рдХрдо std::vector рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ) рдПрдХ рдХреЙрдиреНрд╕ рд╕рдВрджрд░реНрдн рд▓реЗрддрд╛ рд╣реИ; рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдСрдкрд░реЗрдЯрд░ рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдореЗрдВ рдкрд░рд┐рдгрдд рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдЙрдиреНрд╣реЗрдВ emplace_back рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдЪ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ ... рд▓реЗрдХрд┐рди рддрдм рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдкреВрд░рд╛ рдХреЛрдбрдмреЗрд╕ рдХрд╕реНрдЯрдо рдХрдВрдЯреЗрдирд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛

рд╡реЗрд╕реНрдиреЛрде рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рд╛рде рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдФрд░ рдПрдХ рдирдП рдЗрдВрдЬрди (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЧреЛрдбреЛрдЯ) рдХреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдореЗрдВ рдкреНрд░рдореБрдЦ рдпреЛрдЧрджрд╛рди рдХрд╛рд░рдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рдерд╛ рдХрд┐ рд╡реЗрд╕реНрдиреЛрде рдиреЙрдЯ рдЗрдирд╡реЗрдВрдЯреЗрдб рд╣рд┐рдпрд░ рд╕рд┐рдВрдбреНрд░реЛрдо рд╕реЗ рдХрд╛рдлреА рд╣рдж рддрдХ рдкреАрдбрд╝рд┐рдд рдерд╛ред рдЬрдмрдХрд┐ рд╣рдордиреЗ рдмреВрд╕реНрдЯ рдЬреИрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рд╣рдорд╛рд░реА рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╕реНрдЯрдо рдереА, рд╣рдорд╛рд░реА рдпреВрдЖрдИ рдЯреВрд▓рдХрд┐рдЯ рдХрд╕реНрдЯрдо рдереА, рд╣рдорд╛рд░реА рдбреЗрдЯрд╛/рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╕реНрдЯрдо рдереА .... рдЖрдк рд╕рдордЭ рдЧрдПред рдЧреЛрдбреЛрдЯ рдкреЛрд░реНрдЯ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░-рддреНрд╡рд░рд┐рдд рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА (рдФрд░ рдЕрд╕рдлрд▓) (рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ рд╣рдо рд╕реАрдкреАрдпреВ-рдЖрдзрд╛рд░рд┐рдд рд╕рддрд╣ / рд╕реНрдкреНрд░рд╛рдЗрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рдереЗред 2019 рдореЗрдВред рд╣рд╛рдВ, рдореБрдЭреЗ X_X рдкрддрд╛ рд╣реИ)ред рдПрд╕рдбреАрдПрд▓ рдХреЗ Texture рдПрдкреАрдЖрдИ рдореЗрдВ рд╢реЗрдбрд░ рд╕рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдерд╛, рдФрд░ рд╢реЗрдбрд░ рд╕рдкреЛрд░реНрдЯ рдХреА рдЬрд░реВрд░рдд рдереАред рдЕрдВрдд рдореЗрдВ, рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рд░реЗрдВрдбрд░рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛, рдЬрдмрдХрд┐ рд╕рдВрднрд╡ рд╣реЛ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░рдЦрд░рдЦрд╛рд╡ рдХрд╛ рдмреЛрдЭ рдбрд╛рд▓реЗрдЧрд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдореБрдЦреНрдп рджреЗрд╡ рдереЗ, рдФрд░ рдУрдкрдирдЬреАрдПрд▓ (рдпрд╛ рд╡рд▓реНрдХрди рдЕрдЧрд░ рд╣рдореЗрдВ рдХрднреА рдУрдЬреАрдПрд▓ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ) рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд┐рд╕реА рдХреЛ рдвреВрдВрдврдирд╛ рд╕рд┐рд░реНрдл рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рджрд░реНрдж рд╣реЛрддрд╛ рдЬрдм рдЧреЛрдбреЛрдЯ рдЬреИрд╕реЗ рдЗрдВрдЬрди рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдЪреНрдЫрд╛, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрдирд╛рдП рд░рдЦрд╛ рд░реЗрдВрдбрд░рд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдмрдЬрд╛рдпред

рдореИрдВ рдЗрд╕реЗ рд▓рд╛рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдШрд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рдВ, рдЖрдк рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдХреЗ рдЕрдкрдиреЗ рдмрд╛рдЗрдирд░реА рдЖрдХрд╛рд░ рдХреЛ рдереЛрдбрд╝рд╛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд░рдЦрд░рдЦрд╛рд╡ рдХрд╛ рднрд╛рд░реА рдмреЛрдЭ рднреА рдЙрдард╛рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЙрди push_back рдХреЙрд▓ рдХреЛ emplace_back рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдирд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдХрдо рд▓рдЯрдХрд╛ рд╣реБрдЖ рдлрд▓ рд╣реИ рдЬреЛ рдХреЛрдб рдХреЛ рдХреНрд▓реАрдирд░ рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рдирдХрд╛рд░реА рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдХрд╕реНрдЯрдо vector рдкреНрд░рдХрд╛рд░ рд╣реИ, рдпрджрд┐ рдЖрдк рдЗрди-рдкреНрд▓реЗрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдХрд┐рд╕реА рдХреЛ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдФрд░ рдЕрдиреНрдп рд╕рднреА рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рднреА!

рдЗрд╕рд╕реЗ рднреА рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╡реЗрд╢ рдореЗрдВ рдмрд╛рдзрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЧреЛрдбреЛрдЯ рдХреЛрдбрдмреЗрд╕ рдХреЛ рд╕реА++ рдПрд╕рдЯреАрдПрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦрд╛ред рдЙрди рд╕рд╛рдзрдиреЛрдВ рдХреЛ рдирд╣реАрдВ рдЦреЛрдЬрдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрд╛ рдХрд┐рд╕реА рдФрд░ рдХреЛ рдЕрдм рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдЗрдВрдЬрди рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд╕рд╛рде рдХреМрди рд╕рд╛ рдПрдкреАрдЖрдИ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ std::map рдЪрд╛рд╣рд┐рдП? рдирд╣реАрдВ, рдореБрдЭреЗ dictionary рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдХрдард┐рди рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдирдП рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИред рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╣ рдХреЛрдб рдирд╣реАрдВ рд╣реИ рдЬреЛ рдПрдХ рдЪреАрдЬрд╝ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреВрд╕рд░рд╛ рд╣реИ... рдЕрдкрдардиреАрдп?

рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рд╡реЗрд╕реНрдиреЛрде рдХреА 1.14 рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдФрд░ рд╕реНрдЯреАрдо рдкрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛, рдореИрдВрдиреЗ рдПрдХ рдХрд╕реНрдЯрдо рдХрдВрдЯреЗрдирд░ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ std::list рдерд╛, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ erase() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЕрдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реБрдЖ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдпрд╣рд╛рдБ рдкреНрд░рд╢реНрди рдореЗрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИ ред рдЗрд╕рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдХреЛрдб рдерд╛ рдЬреЛ рдмрд╣реБрдд рд╕рд░рд▓, рд╕рдордЭрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдФрд░ рдХрдо рдЕрдкрд╛рд░рджрд░реНрд╢реА рдерд╛ред

рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рд╕реА ++ 11 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЧреИрд░рдХрд╛рдиреВрдиреА рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдФрд░ рдПрд╕рдЯреАрдПрд▓ рд╡рд╛рд▓реЗ рдкрд░ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЪрд┐рдкрдХреЗ рд░рд╣рдирд╛ рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рдЧреЛрдбреЛрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рдзрд╛ рд╣реЛрдЧреАред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЪреАрдЬреЛрдВ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ (рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЪреАрдЬреЗрдВ рдЕрдм рд╣реИрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреИрдЪ -22 рдХреЗ рд╕рд╛рде рдЦрддреНрдо рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред STL (рд▓реЗрдЧрд░ рдмрд╛рдЗрдирд░реА рд╕рд╛рдЗрдЬрд╝, рдЖрджрд┐) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХрдорд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдХреЗ, рдЖрдк рдирдП C++ рдорд╛рдирдХреЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░-рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдХреНрд▓реАрдирд░ рдХреЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдХрдард┐рди рдФрд░ рдХрдард┐рди рдмрдирд╛ рджреЗрдВрдЧреЗред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рднреА рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдЗрди-рдкреНрд▓реЗрд╕ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рдирд╣реАрдВ рд╣реИред рдореИрдВ

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реА рд░рд╛рдп рдХрд╛ рдпрд╣рд╛рдБ рдмрд╣реБрдд рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рджреВрдВрдЧрд╛ рдЬрд┐рд╕рдиреЗ рдПрдХ рдмрдбрд╝реЗ C++ рдХреЛрдбрдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ C++03 рд╕реЗ рдЖрдзреБрдирд┐рдХ C++ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдХрд╛рдо рд╣реИ, рд▓реЗрдХрд┐рди рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЯреЗрдХреНрд╕реНрдЯрд╡реЙрд▓ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ!

@Vultraz рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣рдордд рд╣реИрдВред

рдЬрдмрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ C++ рдХреЗ рд╕рд╛рде (рд▓рдЧрднрдЧ рдХреЛрдИ рднреА) рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИ, GDNative + C++ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдордп рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реВрдВред

рдЕрднреА рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд░реЗрдбрд┐рдЯ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдерд╛ " рдХреНрдпрд╛ рдЧреЛрдбреЛрдЯ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдирд╛ рд╕реА ++ рд╕реАрдЦрдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ? " рдзрд╛рдЧрд╛:

рдореИрдВ рдЗрд╕рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред GDNative рдФрд░ C++ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдореЗрд░реЗ рдЕрдиреБрднрд╡ рд╕реЗ, рд╡реЗ рдкрд╣рд┐рдпрд╛ рдХреЛ рдХрдо рд╕реЗ рдХрдо рдХрдИ рдмрд╛рд░ (рдХрд╕реНрдЯрдо рд╕рдВрдЧреНрд░рд╣ рдФрд░ рд╕рдВрдХреЗрдд) рдлрд┐рд░ рд╕реЗ рдЦреЛрдЬрддреЗ рд╣реИрдВред рдпреЗ рдХрд╕реНрдЯрдо рд╡рд░реНрдЧ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реИрдВ (рдХрдо рд╕реЗ рдХрдо рдЬреАрдбреАрдПрдиреЗрдЯрд┐рд╡ рд╕реА ++ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ/рд╣реЗрдбрд░ рдкреАрдУрд╡реА рд╕реЗ - рдПрдХ рдЧрд╛рдЗрдб рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЬреЛ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдХреЛрд╢рд┐рд╢ рдХреА рдЧрдИ рдПрдХ рдЧреИрд░-рд╕рдВрдХрд▓рди рдбреЗрдореЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдХреЛрдб рдореЗрдВ рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИ [рд╣реЗрдбрд░, рдмрд╛рдЗрдВрдбрд┐рдВрдЧ] рдФрд░ рди рд╣реА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ) рдФрд░ рднреНрд░рдорд┐рдд/рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд░реЗрдлрд░реА рдореЗрдВ рджреЗрд░ рд╕реЗ рдХреБрдЫ рдЗрдВрдЬрди рд╡рд░реНрдЧ рд▓рдкреЗрдЯрдиреЗ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреНрд░реИрд╢ рд╣реЛрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд░реЗрдл рд╕рд╣рдЬ рд░реВрдк рд╕реЗ рдкрд╛рд░рджрд░реНрд╢реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЙрд╕ рд╡рд░реНрдЧ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рд▓рдкреЗрдЯрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ)ред

рдореИрдВ рдирдИ рд╕реА ++ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЖрдИрдПрдордУ рдХрдо рдкрдардиреАрдп рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдкрд╕рдВрдж рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВред рдореБрдЭреЗ рд╣рд╛рд╕реНрдХреЗрд▓ (рдФрд░ рдЗрд╕рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп) рдкрд╕рдВрдж рд╣реИрдВ, рдЗрд╕рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛, рдЙрдиреНрдирдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рдХреЛ рдЕрдкрдВрдЧ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднрдЯрдХрдирд╛ рдирд╣реАрдВред

рдЗрди рдирд┐рд░реНрдгрдпреЛрдВ/рдореВрд▓реНрдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдХрднреА рднреА рдЗрдВрдЬрди рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреВрдВрдЧрд╛ред (рдпрд╣ рдордЬрд╝реЗрджрд╛рд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрдВрдЬрди рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЗрди рдирд┐рд░реНрдгрдпреЛрдВ рдХреЗ рдкреАрдЫреЗ рдХрд╛ рдХрд╛рд░рдг рдпреЛрдЧрджрд╛рди рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдирд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рдкрд░реАрдд рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛ред)

@Vultraz рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡реНрдпрдХреНрдд рд▓реЗрдЦрди, рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдкрдврд╝рд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдРрд╕рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реБрдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВ рдПрдХ рдкреБрд░рд╛рдиреА рд╢реИрд▓реА рдХрд╛ рд╕реА++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реВрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рдореБрдЭреЗ рдЧреЛрдбреЛрдЯ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрд░рдЪрд┐рдд рдФрд░ рдореЗрд░реА рдкрд╕рдВрдж рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрд╣реБрдд рдХреБрдЫ рдкрд╛рдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЗрдВрдЬрди рдХреЗ рдореВрд▓ рдореЗрдВ рд╡реАрдЖрд░ рд╕рдкреЛрд░реНрдЯ рдХреЛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЬрд▓реНрджреА рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛, рдЬрдмрдХрд┐ рдХреЛрдб рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрдо рдкреВрд░реНрд╡-рдореМрдЬреВрджрд╛ рдЕрдиреБрднрд╡ рд╣реЛрдирд╛ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдПрдХ рд╡рд╕реАрдпрддрдирд╛рдорд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрдВрдЬрди рдХрд┐рддрдирд╛ рдкрдардиреАрдп рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдпрд╣ рдХреБрдЫ рдорд╛рдпрдиреЛрдВ рдореЗрдВ рдкреБрд░рд╛рдирд╛ рд╕реНрдХреВрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрд╛рддрд╛рд░ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЗ рдХрд┐рддрдиреЗ рдЕрдЪреНрдЫреЗ рд╣реИрдВред рд╣рд╛рдВ, рдРрд╕реЗ рд╣рд┐рд╕реНрд╕реЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрдо рд╕реНрдореГрддрд┐ рднреВрдЦрд╛ рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдореИрдВ рдЗрд╕рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реБрдЖ рд╣реВрдВред

рдЬрдм рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕реА ++ рдореЗрдВ рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реБрдП рд╕реБрдирддрд╛ рд╣реВрдВ, рддреЛ рдЕрдХреНрд╕рд░ рдореИрдВ рдмрд╕ рдмреВрдврд╝рд╛ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВ рдХрд┐ рдЭрдЧрдбрд╝рд╛ рдХреНрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдЕрдзрд┐рдХ рдЖрдзреБрдирд┐рдХ рд╕реА ++ рд╕реАрдЦрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЖрдк рдЧреЛрдбреЛрдЯ рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд┐рдпрд╛ рдХрд╛ рдкреБрди: рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рдЬреИрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд╣рдо рд╕рд┐рд░реНрдл рдЗрд╕ рдмрд╛рдд рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣рд╛рдВ рдХрд┐рддрдиреА рдЕрдЪреНрдЫреА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ :)

рдЕрдм рдЬрдм рд╕рднреА рдиреЗ рдХрд╣рд╛, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╣реИрдВ, рдпрд╣ рдордЬрд╝реЗрджрд╛рд░ рдирд╣реАрдВ рд╣реИред рдЧреЛрдбреЛрдЯ рдХреА рдЙрддреНрдкрддреНрддрд┐ рд╕реЗ рд▓реЗрдХрд░ рдирдП рд╕реА ++ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреЛрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдШрд░ рдкрд░ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЧреЛрдбреЛрдЯ рдХреА рдХреНрд░реЙрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкреНрд░рдХреГрддрд┐ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ (рдХреБрдЫ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдирд╣реАрдВ) рджреНрд╡рд╛рд░рд╛ рд▓рдЧрд╛рдИ рдЧрдИ рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ (/ рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╕рд╣реА рдпрд╛ рдЧрд▓рдд рд╣реИ, рдпрд╣ рд╡рд╣реА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдк рдХрд╣рд╛рдВ рд╕реЗ рдЖ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рд╡рд╛рд▓ рдХрд┐ рдХреНрдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реАрдЦрдиреЗ рдХреА рдЕрд╡рд╕реНрдерд╛ рдпрд╣ рд╕реАрдЦрддреА рд╣реИ рдХрд┐ рдЧреЛрдбреЛрдЯ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдмрдбрд╝реЗ рдХреЛрдб рдХреЛ рджреЛрдмрд╛рд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рднреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рдЖрдзрд╛рд░ред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рджреЗрдЦрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдЬреБрдЖрди рдиреЗ рдЬреАрдбреАрд╕реА рдореЗрдВ рдПрдХ рд╡рд╛рд░реНрддрд╛ рдХреА рдЬрд┐рд╕реЗ рдСрдирд▓рд╛рдЗрди рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛: https://www.youtube.com/watch?v=C0szslgA8VY
рдкреНрд░рд╢реНрдиреЛрддреНрддрд░ рдХреЗ рджреМрд░рд╛рди рдЕрдВрдд рдореЗрдВ рд╡рд╣ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рдШрдбрд╝реА рд╣реИред

GDNative рдкрд░ рдКрдкрд░ рджреА рдЧрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рд▓реЛрдЧреЛрдВ, GDNative рдПрдХ рд╣рд╛рд▓рд┐рдпрд╛ рдЬреЛрдбрд╝ рд╣реИ рдЬреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдЗрд╕ рдмрд╛рдд рдХрд╛ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рдЙрддреНрдкрд╛рдж рдХреИрд╕реЗ рд╕рдВрд░рдЪрд┐рдд рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдореЙрдбреНрдпреВрд▓ (https://docs.godotengine.org/en/3.1/Development/cpp/custom_modules_in_cpp.html) рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рд╣рд╛рдБ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдореВрд▓ рдЙрддреНрдкрд╛рдж рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ GDNative рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрддрд╛ рд╣реИ рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рдд рдХреА рдмреЗрд╣рддрд░ рд╕рдордЭ рд╣реИ рдХрд┐ рдЗрдВрдЬрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рд╕рдВрд░рдЪрд┐рдд рд╣реИред рдКрдкрд░ рджрд┐рдП рдЧрдП рдХрдИ рддрд░реНрдХ GDNative рдХреА рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ, рд╕реНрд╡рдпрдВ Godot рдХреА рдирд╣реАрдВред
рдореБрдЭреЗ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдореЙрдбреНрдпреВрд▓ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдЬреЛ рдореБрдЭреЗ рдЙрд╕реА рддрд░рд╣ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╣рдо рд╕реНрдерд┐рд░ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рд╢рд╛рдпрдж рдХрд┐рд╕реА рджрд┐рди рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рддрдм рддрдХ GDNative рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

@Vultraz @mnn рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрд╕рдЯреАрдПрд▓ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд┐рдВрджреБ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рдПрдордПрд╕рд╡реАрд╕реА, рдЬреНрдпрд╛рджрд╛рддрд░) рдореЗрдВ рдбреАрдмрдЧ рдореЛрдб рдореЗрдВ рдмреЗрд╣рдж рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреЛрдИ рдХреЗрд╡рд▓ рдИрдП рдХреЗ рдПрд╕рдЯреАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЙрдирдХрд╛ рддреЗрдЬ рдФрд░ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реИ)ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛: рдореИрдВрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЖрд░рдПрдЖрдИрдЖрдИ рдХреА рдХрдореА рдХреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкрд╛рдпрд╛ред рдкреВрд░реЗ рдХреЛрдб рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдореИрдиреНрдпреБрдЕрд▓ рд╕рдлрд╛рдИ рдХреА рдорд╛рддреНрд░рд╛ рдЕрдЬреАрдм рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ RAII C++ 11 рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдирд╣реАрдВ рд╣реИред

GDNative рдкрд░ рдКрдкрд░ рджреА рдЧрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рд▓реЛрдЧреЛрдВ, GDNative рдПрдХ рд╣рд╛рд▓рд┐рдпрд╛ рдЬреЛрдбрд╝ рд╣реИ рдЬреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдЗрд╕ рдмрд╛рдд рдХрд╛ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рдЙрддреНрдкрд╛рдж рдХреИрд╕реЗ рд╕рдВрд░рдЪрд┐рдд рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдЪ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрдВрдЬрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ GDNative рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ GDNative рдХрд╛ рдЙрдкрдпреЛрдЧ "рд╕реНрдХреНрд░рд┐рдкреНрдЯ" рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдРрд╕реЗ рджрд░реНрд╢рдХреЛрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдХрдо C++ рдХреМрд╢рд▓ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реЛрддреА рд╣реИ рдЬреЛ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рдореЗрдВ рдбреВрдмрдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рд╣реИрдВ рдЗрдВрдЬрди?

рдЗрди рдирд┐рд░реНрдгрдпреЛрдВ/рдореВрд▓реНрдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдХрднреА рднреА рдЗрдВрдЬрди рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреВрдВрдЧрд╛ред (рдпрд╣ рдордЬрд╝реЗрджрд╛рд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрдВрдЬрди рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЗрди рдирд┐рд░реНрдгрдпреЛрдВ рдХреЗ рдкреАрдЫреЗ рдХрд╛ рдХрд╛рд░рдг рдпреЛрдЧрджрд╛рди рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдирд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рдкрд░реАрдд рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛ред)

рдореИрдВ рдПрдХ рд╕реА ++ рдиреЛрдм рд╣реВрдВ (рд╕реА ++ рдореЗрдВ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ 2 рджрд┐рди рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рд▓рдЧрднрдЧ рджреЛ рдорд╣реАрдиреЗ), рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕ рдирд┐рд░реНрдгрдп рд╕реЗ рд▓рдХреНрд╖рд┐рдд рдЬрдирд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд▓рд╛рдн рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧреЛрдбреЛрдЯ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдХрдореА рд╣реИ (рдПрд╕рдЯреАрдПрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЬреЛ рд╕реНрд╡рдпрдВ рдмрд╣реБрдд рд╕рдореГрджреНрдз рдирд╣реАрдВ рд╣реИ), рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдХрдВрдЯреЗрдирд░ GDNative рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭрд╕реЗ рдЧрд▓рддреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдореИрдВ рдЧреЛрдбреЛрдЯ рдХрдВрдЯреЗрдирд░реЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╣рдореЗрд╢рд╛ рджрд░реНрдж рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рд░реЗрдлрд░реА рдХрд╛ рдЕрд╕рдВрдЧрдд рдФрд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдЗрдВрдЬрди рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЧрд▓рдд рд╣реВрдВред

рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рдореЗрд░реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреГрд╖реНрдарднреВрдорд┐ рд╢рд╛рдпрдж рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реИ - рдЬреЗрдПрд╕/рдЯреАрдПрд╕ рдореЗрдВ рдкреЗрд╢реЗрд╡рд░ рдХрд╛рдордХрд╛рдЬреА рд╕рд╛рд▓, рд╕реНрдХреИрд▓рд╛ рдореЗрдВ рд╕рд╛рд▓, рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рдЫреЛрдЯреА рд╢реМрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ (рдХреБрдЫ рд╣рдЬрд╛рд░реЛрдВ рд▓рд╛рдЗрдиреЗрдВ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрддрдиреА рдЫреЛрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рд╛рд╕реНрдХреЗрд▓ рдХрд┐рддрдирд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИ - рдХрдИ рдмрд╛рд░ рдореИрдВ рдХреЛрдб рд▓рд┐рдЦрддрд╛ рд╣реВрдВ рд╕реА ++ рдореЗрдВ рдЬреЛ рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 5 рдЧреБрдирд╛ рдЫреЛрдЯрд╛ рдФрд░ рдЕрдзрд┐рдХ рдкрдардиреАрдп рд╣реЛрдЧрд╛)ред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЕрдХреЗрд▓рд╛ рд╣реВрдВ рдЬреЛ рдкреБрд░рд╛рддрди рдЕрддреНрдпрдзрд┐рдХ рд╡рд░реНрдмреЛрдЬрд╝ рддрдХрдиреАрдХ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИред

@ рдПрдордПрдирдПрди , рдЬреАрдбреАрдПрдиреЗрдЯрд┐рд╡ рд╕реА рдЖрдзрд╛рд░рд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдкреВрд░реЗ рдЗрдВрдЬрди рдХреЛ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред рдЙрд╕рдХреЗ рдКрдкрд░ рдХрдИ рднрд╛рд╖рд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдмрдирд╛рдП рдЧрдП рдереЗ рддрд╛рдХрд┐ рдЖрдк рд╕реА ++, рдкрд╛рдпрдерди, рдЬрдВрдЧ, рдЖрджрд┐ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦ рд╕рдХреЗрдВ, рдЬрд┐рд╕реЗ рдлрд┐рд░ рд╕реЗ рдкреВрд░реЗ рдЗрдВрдЬрди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред

рдЗрд╕рдХрд╛ рджреВрд╕рд░рд╛ рд▓рдХреНрд╖реНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдерд╛ рдЬрд╣рд╛рдВ рдЖрдк рдХреЗрд╡рд▓ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╣реА рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрдВрдЬрди рдХреЗ рд╕реНрдерд┐рд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХрдИ рдореЙрдбреНрдпреВрд▓ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛ рдЧрдП рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рд░рдЦрд░рдЦрд╛рд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдлрд┐рд░ рднреА рдЗрдВрдЬрди рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрдВрдзреЗ рд╣реИрдВред

рддреЛ рд╣рд╛рдБ, рдЗрд╕рдиреЗ рд╕рдВрдХрд▓рди рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдФрд░ рд╕рд░рд▓ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдХрд╛рд░рдг рдЗрд╕рдХреА рд╕реАрдорд╛рдПрдБ рд╣реИрдВред рдЬрдм рдЖрдк рдЙрди рд╕реАрдорд╛рдУрдВ рдХреЗ рднреАрддрд░ рд░рд╣рддреЗ рд╣реИрдВ рддреЛ GDNative рдореЗрдВ C++ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╕рд░рд▓ рд░рд╣ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрд╣рд╛рдБ рддрдХ рдЖрдк рдЬрд┐рд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рдХрд╛ рд╡рд┐рд╖рдп рд╕рд░рд▓ рд╣реИред

рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдФрд░ рдЙрди рд╕реАрдорд╛рдУрдВ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ рдФрд░ рдЖрдк рд╕рд┐рд░рджрд░реНрдж рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рд╕рд┐рд░рджрд░реНрдж рдУрдкрдирдЬреАрдПрд▓ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрдмрдХрд┐ рдпрд╣ рд╕рдм рд╡рд┐рдЬреБрдЕрд▓ рд╕рд░реНрд╡рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдЕрдВрджрд░ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреАрдбреАрдПрдиреЗрдЯрд┐рд╡ рдХреЗ рдЕрдВрджрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП GDNative рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд░рдЦрдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдХрд╛рд░рдХ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХрднреА рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЬрдм рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕ рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ GDNative GDScript рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рдПрдХ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдерд╛ рдЬрд┐рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЖрдк рдЗрдВрдЬрди рдХреЗ рдЕрдВрджрд░ рдХреБрдЫ рднреА рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ GDScript рдХреЗ рдкрд╛рд╕ рдпрд╛ рддреЛ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рд╣реИ (рдЬреИрд╕реЗ OpenGL)

рдирд╡реАрдирддрдо рдХреЛрд░рдЖрдЙрдЯ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд co_await ()? рдкреНрд░реЛрдЬреЗрди рдХреЗ рдирдЬрд░рд┐рдП рд╕реЗ, рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИред

Coroutine рд╕рдорд░реНрдерди C++20 рдорд╛рдирдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдЕрдВрддрд┐рдо рд░реВрдк рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ, рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ 3D рд╕реНрдерд╛рдирд┐рдХ рд╕рдВрдкрд╛рджрдХ рдХреЗ рд▓рд┐рдП рдЙрдиреНрдирдд (рдерд┐рдВрдХ рд╕реЛрд░реНрд╕ рд╣реИрдорд░ рдПрдбрд┐рдЯрд░) рдмреНрд░рд╢/рд╕реАрдПрд╕рдЬреА рдЯреВрд▓ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдСрдЯреЛ рдХреЛ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣ рдмрд╛рдд рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣реИред рдХрднреА-рдХрднреА _рдСрдЯреЛ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рд╕реНрдкрд╖реНрдЯ_ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдирд┐рдореНрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

рдореИрдВ SpatialEditorViewportContainer рдХреЗ рдЕрдВрджрд░ рд╣реВрдВ рдФрд░ рдореИрдВ SpatialEditor рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬреЛ рдореВрд▓ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рддреАрди рдЖрдЗрдЯрдо рд╣реИ (рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдХреЛрдИ рдпрд╣ рдмрддрд╛рдП рдХрд┐ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХрдВрдЯреЗрдирд░ рд╕реЗ SpatialEditor рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╣реИрдВ, рдХреГрдкрдпрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рдХреЛрдбрдмреЗрд╕ рдХреЛ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ) рдмреАрддрд╛ рд╣реБрдЖ рдХрд▓)

auto sp = Object::cast_to<SpatialEditor>(get_parent()->get_parent()->get_parent());

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдбрд╛рдпрдирд╛рдорд┐рдХ рдбрд╛рдЙрдирдХрд╛рд╕реНрдЯ _рдкрд╣рд▓реЗ рд╕реЗ рд╣реА SP_ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рддрд╛ рд╣реИред рдСрдЯреЛ рдХреЗ рдмрд┐рдирд╛, рдореБрдЭреЗ рдирд┐рд░рд░реНрдердХ рдХрдмрд╛рдбрд╝ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдЬреИрд╕реЗ:

SpatialEditor sp = Object::cast_to<SpatialEditor>(get_parent()->get_parent()->get_parent());

рдХреГрдкрдпрд╛, рднрдЧрд╡рд╛рди рдХреЗ рдкреНрдпрд╛рд░ рдХреЗ рд▓рд┐рдП, рдСрдЯреЛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ!

рдЬрд┐рд╕ рд╡рд┐рд╖рдп рдкрд░ рд╕реА ++ рдорд╛рдирдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ: рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкреНрд░рддрд┐рдмрд┐рдВрдм рдФрд░ рд╕реА ++ 20 рдФрд░ рдЙрд╕рд╕реЗ рдЖрдЧреЗ рдХреА рдореЗрдЯрд╛ рдХреНрд▓рд╛рд╕ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдореИрдХреНрд░реЛ рдЕрд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдВрдЧреА рдЬреИрд╕реЗ

GDCLASS(SpatialEditorViewportContainer, Container);

рд╕рд╛рде рд╣реА, рдореИрдВ рдпрд╣ рдкреНрд░рддрд┐рдзреНрд╡рдирд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЗрди рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдиреЗ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдХреЗ рдореЗрд░реЗ рдирд┐рд░реНрдгрдп рдХрд╛ рджреВрд╕рд░рд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ред 2012 рдХреЗ рдЖрд╕рдкрд╛рд╕, рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рд╕реА ++ 11 рд╕рд┐рдЦрд╛рдпрд╛ рдФрд░ рдЗрд╕ рдорд╛рдирдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдЪреЗрд╣рд░реЗ рдкрд░ рдПрдХ рдердкреНрдкрдбрд╝ рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рд╕реА ++ 11 рдФрд░ рд╕реА ++ 03 рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рднрд╛рд╖рд╛рдПрдВ рд╣реИрдВ, рдФрд░ рд╕реА ++ рдХреЛ рд╕реАрдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдкрдврд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдФрд░ рд▓рд┐рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд╕реА ++ 03 (рдпрд╛ 98 рдмрд▓реНрдХрд┐) рдХреА рдЧрд▓рддреА рд╣реИред рдмрдирд╛рдП рд░рдЦрдиреЗ рдФрд░ рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо C++11 рдпрд╛ 14 рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ _detrimental_ рд╣реИред рдореИрдВ рд╕реА ++ 11 рдХреЗ рд╕рд╛рде рдмрдбрд╝рд╛ рд╣реБрдЖ рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓реАрдб рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдерд╛ (рдЬрдм рдЙрдиреНрд╣реЛрдВрдиреЗ 2007 рдореЗрдВ рдЧреЛрдбреЛрдЯ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рдореИрдВ 12 рд╕рд╛рд▓ рдХрд╛ рдерд╛), рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд░реАрдпрддрд╛ рдФрд░ рдмреЗрдмреА рдбрдХ рд╕рд┐рдВрдбреНрд░реЛрдо рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реА ++ 11 рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдирд╛ рд╕рд┐рд░реНрдл рдореЗрд░реЗ рдЬреИрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреА рдХреАрдордд рдкрд░ рдкреБрд░рд╛рдиреЗ рд╕реНрдХреВрд▓ (рдЙрд░реНрдл, рднрдпрд╛рдирдХ) рд╕реА ++ рдХреЗ рдЕрднреНрдпрд╕реНрдд рд▓реЛрдЧреЛрдВ рдХреЛ рдЖрд░рд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЖрдзреБрдирд┐рдХ рд╕реА ++ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рд╛ред

рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╕рдордп рдмреАрддрддрд╛ рд╣реИ, рдореЗрд░реЗ рдЬреИрд╕реЗ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЬреВрдирд┐рдпрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЖрдзреБрдирд┐рдХ рд╕реА ++ 11 рдФрд░ рдЙрд╕рд╕реЗ рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗ рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЛ рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдРрд╕реЗ рд▓реИрдиреНрдпреВрдЬ рдореЗрдВ рдлрдВрд╕ рдЧрдИ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд▓реИрдореНрдмреНрдбрд╛ рднреА рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: C++11 рдпрд╛ рдмрд╕реНрдЯ!

рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрд╕рдЯреАрдПрд▓ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рд╡рдХрд╛рд▓рдд рдирд╣реАрдВ рдХрд░рддрд╛ред рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд░реЛрд▓ рдХрд░рдирд╛ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рд▓реИрдореНрдмреНрдбрд╛ рдФрд░ рдСрдЯреЛ рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЕрд╕рд┐рди рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ рдХрдХреНрд╖ рдмрдВрдж рдХрд░реВрдБрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдБ рдЖрдЧреЗ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рд╡реНрдпрд░реНрде рд╣реИред рд╣рдордиреЗ рдорд╣реАрдиреЛрдВ рдкрд╣рд▓реЗ рд╣реА рдЪрд░реНрдЪрд╛ рдХреА рдереА рдХрд┐ C++11 рдФрд░/рдпрд╛ рдХреБрдЫ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдХрд┐рд╕ рддрд░рд╣ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред

рд╣рдо рдХреЗрд╡рд▓ @hpvb рдкрд░ рд╣рдорд╛рд░реА рд╕рд╣рдорддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЬрд╛ рд░рд╣реЗ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╣рдо рдЙрди рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рд╡реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛ рдЬрд╛рдПрдВред рддрдм рддрдХ, рдпрд╣ рд░рдЪрдирд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ndee85 picture ndee85  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

RayKoopa picture RayKoopa  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nunodonato picture nunodonato  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

EdwardAngeles picture EdwardAngeles  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ducdetronquito picture ducdetronquito  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ