C ++ рдореЗрдВ Google рд╕реНрдЯрд╛рдЗрд▓ рдЧрд╛рдЗрдбред рднрд╛рдЧ 8

рднрд╛рдЧ 1. рдкрд░рд┐рдЪрдп
...
рднрд╛рдЧ 8. рдирд╛рдордХрд░рдг
рднрд╛рдЧ 9. рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
...



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

рдирд╛рдорд╛рдВрдХрди


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

рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдордХрд░рдг рд╕рд┐рджреНрдзрд╛рдВрдд


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

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

class MyClass { public: int CountFooErrors(const std::vector<Foo>& foos) { int n = 0; //       for (const auto& foo : foos) { ... ++n; } return n; } void DoSomethingImportant() { std::string fqdn = ...; //      } private: const int kMaxAllowedConnections = ...; //     }; 

 class MyClass { public: int CountFooErrors(const std::vector<Foo>& foos) { int total_number_of_foo_errors = 0; //       for (int foo_index = 0; foo_index < foos.size(); ++foo_index) { //   `i` ... ++total_number_of_foo_errors; } return total_number_of_foo_errors; } void DoSomethingImportant() { int cstmr_id = ...; //   ( ) } private: const int kNum = ...; //       }; 

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдо рднреА рдорд╛рдиреНрдп рд╣реИрдВ: рдореИрдВ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдпрд╛ рдХрд╛рдЙрдВрдЯрд░, рдЯреА рдХреЗ рд▓рд┐рдПред

рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдирд┐рдпрдореЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╕рдордп "рд╢рдмреНрдж" / "рд╢рдмреНрдж" рд╡рд╣ рд╕рдм рд╣реИ рдЬреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдмрд┐рдирд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрддреАрдХрд░рдг рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдПрдХ рд╢рдмреНрдж рдореЗрдВ, рдкрд╣рд▓реЗ рдЕрдХреНрд╖рд░ рдХреЛ рдХреИрдкрд┐рдЯрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╢реИрд▓реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░: " рдКрдВрдЯ рдХреЗрд╕ " рдпрд╛ "рдкрд╛рд╕реНрдХрд▓ рдХреЗрд╕"), рд╢реЗрд╖ рдЕрдХреНрд╖рд░ рд▓реЛрдЕрд░рдХреЗрд╕ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рдорд╛рдирддрдГ StartRpc () , рдЕрдзрд┐рдорд╛рдирддрдГ StartRPC () ред

рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рднреА рдЙрдирдХреА рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ: рдкреНрд░рдХрд╛рд░ рдирд╛рдо, рдЪрд░ рдирд╛рдо, рдЖрджрд┐ ...

рдлрд╝рд╛рдЗрд▓ рдирд╛рдо


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

рдЙрдкрдпреБрдХреНрдд рдирд╛рдореЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг:

  • my_useful_class.cc
  • my-useful-class.cc
  • myusefulclass.cc
  • myusefulclass_test.cc // _unittest рдФрд░ _regtest рдкрджрд╛рд╡рдирдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

C ++ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ .cc рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣реЗрдбрд░ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
.рдПрдЪ ред рдкрд╛рда рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ .inc рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЕрдиреБрднрд╛рдЧ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЗрдбрд░ рднреА рджреЗрдЦреЗрдВ)ред

рдЙрди рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИрдВ / usr / рд╢рд╛рдорд┐рд▓ рд╣реИрдВ , рдЬреИрд╕реЗ db.h.

рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдо рджреЗрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, http_server_logs.h logs.h рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ ред рдЬрдм рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬреЛрдбрд╝реЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рдирд╛рдо рджреЗрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, foo_bar.h рдФрд░ foo_bar.cc (рдФрд░ рд╡рд░реНрдЧ FooBar рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ)ред

рдирд╛рдо рдЯрд╛рдЗрдк рдХрд░реЗрдВ


рдЯрд╛рдЗрдк рдирд╛рдо рдПрдХ рдХреИрдкрд┐рдЯрд▓ рд▓реЗрдЯрд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдирдпрд╛ рд╢рдмреНрдж рдХреИрдкрд┐рдЯрд▓ рд▓реЗрдЯрд░ рд╕реЗ рднреА рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: MyExcitingClass , MyExcitingEnum ред

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

 // classes and structs class UrlTable { ... class UrlTableTester { ... struct UrlTableProperties { ... // typedefs typedef hash_map<UrlTableProperties *, std::string> PropertiesMap; // using aliases using PropertiesMap = hash_map<UrlTableProperties *, std::string>; // enums enum UrlTableErrors { ... 

рдЪрд░ рдирд╛рдо


рд╢рдмреНрджреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рд╕рд╛рде рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ (рдлрд╝рдВрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рд╕рд╣рд┐рдд) рдФрд░ рдбреЗрдЯрд╛ рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рдирд╛рдо рдирд┐рдЪрд▓реЗ рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдЗрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рджрд╕реНрдп (рд╕рдВрд░рдЪрдирд╛рдПрдВ рдирд╣реАрдВ) рдирд╛рдо рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рджреНрд╡рд╛рд░рд╛ рдкреВрд░рдХ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: a_local_variable , a_struct_data_member , a_class_data_member_ ред

рд╕рд╛рдорд╛рдиреНрдп рдЪрд░ рдирд╛рдо


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 std::string table_name; // OK -     

 std::string tableName; //  -   

рдХрдХреНрд╖рд╛ рдбреЗрдЯрд╛ рд╕рджрд╕реНрдп


рдЗрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рджрд╕реНрдп, рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░, рдЕрдВрдд рдореЗрдВ рдПрдХ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЗ рд╕рд╛рде рд╕рд╛рдзрд╛рд░рдг рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

 class TableInfo { ... private: std::string table_name_; // OK -    static Pool<TableInfo>* pool_; // OK. }; 

рд╕рдВрд░рдЪрдирд╛ рдбреЗрдЯрд╛ рд╕рджрд╕реНрдп


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

 struct UrlTableProperties { std::string name; int num_entries; static Pool<UrlTableProperties>* pool; }; 

рд╕рдВрд░рдЪрдирд╛рдПрдВ рдмрдирд╛рдо рдХрдХреНрд╖рд╛рдПрдВ рднреА рджреЗрдЦреЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░рдирд╛ рд╣реИ, рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдХрдмред

рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдирд╛рдо


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

 const int kDaysInAWeek = 7; const int kAndroid8_0_0 = 24; // Android 8.0.0 

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

рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо


рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рдорд┐рд╢реНрд░рд┐рдд рд╢реИрд▓реА (рдЕрдкрд░рдХреЗрд╕ рдФрд░ рд▓реЛрдЕрд░рдХреЗрд╕ рдЕрдХреНрд╖рд░) рдореЗрдВ рдирд╛рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рдЪрд░ рдПрдХреНрд╕реЗрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ (рдПрдХреНрд╕реЗрд╕рд░ рдФрд░ рдореНрдпреВрдЯреЗрдЯрд░) рдореЗрдВ рд▓рдХреНрд╖реНрдп рдЪрд░ рдХреЗ рд╕рдорд╛рди рдПрдХ рд╢реИрд▓реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдЖрдорддреМрд░ рдкрд░, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдХреИрдкрд┐рдЯрд▓ рдЕрдХреНрд╖рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдирд╛рдо рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдХреИрдкрд┐рдЯрд▓ рд╣реЛрддрд╛ рд╣реИред

 void AddTableEntry(); void DeleteUrl(); void OpenFileOrDie(); 

(рдЗрд╕реА рддрд░рд╣ рдХреЗ рдирд┐рдпрдо рдПрдХ рд╡рд░реНрдЧ рдпрд╛ рдирд╛рдо рд╕реНрдерд╛рди рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕реНрдерд┐рд░рд╛рдВрдХ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдПрдкреАрдЖрдИ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреА рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП (рдФрд░ рдпрд╣ рддрдереНрдп рдХрд┐ рд╡реЗ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИрдВ)

рдПрдХреНрд╕реЗрд╕рд░реНрд╕ рдФрд░ рдореНрдпреВрдЯреЗрдЯрд░реНрд╕ (рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╕реЗрдЯ рдХрд░реЗрдВ) рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдЪрд░ рдХреА рддрд░рд╣ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реЗ рдЕрдХреНрд╕рд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рджрд╕реНрдп рдЪрд░ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, int count () рдФрд░ void set_count (int count) ред

Namespace Namespace


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

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

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

рдиреЗрд╕реНрдЯреЗрдб рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рд▓рд┐рдП рдЬреНрдЮрд╛рдд рдирд╛рдореЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдмрдЪреЗрдВред рдирд╛рдореЛрдВ рдХреЗ рдмреАрдЪ рдЯрдХрд░рд╛рд╡ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рджреМрд░рд╛рди рдЖрд╢реНрдЪрд░реНрдп рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдиреЗрд╕реНрдЯреЗрдб рдиреЗрдорд╕реНрдкреЗрд╕ рдирд╛рдо рди рдмрдирд╛рдПрдВред рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░ ( websearch :: index , websearch :: index_util ) рдХреЛ рдХреЛрд▓рдореНрдмрд╕ рд╡реЗрдмрд╕рд░реНрдЪ :: рдЙрдкрдпреЛрдЧ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдХреЗ рдмрдЬрд╛рдп рдЕрдиреБрд╢рдВрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдВрддрд░рд┐рдХ / рдЖрдВрддрд░рд┐рдХ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдЬрдм рдХреЛрдИ рдЕрдиреНрдп рдХреЛрдб рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЯрдХрд░рд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЖрдВрддрд░рд┐рдХ рд╕рд╣рд╛рдпрдХ рд╡рд┐рднрд┐рдиреНрди рдЯреАрдореЛрдВ рдкрд░ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВ)ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХрд┐рд╕реА рдирд╛рдо рд╕реНрдерд╛рди рдХрд╛ рдирд╛рдо рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрд╣реБрдд рдорджрдж рдорд┐рд▓рддреА рд╣реИред ( websearch :: index :: frobber.h рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП frobber_internal )

рдЧрдгрдирд╛ рдирд╛рдо


рдПрдиреБрдорд░реЗрд╢рдиреНрд╕ (рджреЛрдиреЛрдВ рд╕реНрдХреЛрдкреНрдб рдЕрдбрд╝рдЪрдиреЛрдВ рдХреЗ рд╕рд╛рде рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ) рдХреЛ рдпрд╛ рддреЛ рд╕реНрдерд┐рд░рд╛рдВрдХ рдпрд╛ рдореИрдХреНрд░реЛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд╣ рд╣реИ: kEnumName рдпрд╛ ENUM_NAME ред

рдкреНрд░рдЧрдгрдХ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╛рдорд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕реЗ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред UrlTableErrors (рдФрд░ AlternateUrlTableErrors ) рдЧрдгрди рдХрд╛ рдирд╛рдо рд╣реА рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реИред рдирддреАрдЬрддрди, рдПрдХ рдорд┐рд╢реНрд░рд┐рдд рд╢реИрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

 enum UrlTableErrors { kOk = 0, kErrorOutOfMemory, kErrorMalformedInput, }; enum AlternateUrlTableErrors { OK = 0, OUT_OF_MEMORY = 1, MALFORMED_INPUT = 2, }; 

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

рдореИрдХреНрд░реЛ рдХреЗ рдирд╛рдо


рдХреНрдпрд╛ рдЖрдк рдореИрдХреНрд░реЛрдЬрд╝ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ ? рдмрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ (рдпрджрд┐ рдЖрдк рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ), рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
MY_MACRO_THAT_SCARES_SMALL_CHILDREN_AND_ADULTS_ALIKE ред

рдХреГрдкрдпрд╛ рдореИрдХреНрд░реЛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдкрдврд╝реЗрдВ; рдЖрдо рддреМрд░ рдкрд░, рдореИрдХреНрд░реЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдкрдХреЛ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдмрдбрд╝реЗ рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рдмрдбрд╝реЗ рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рдирд╛рдо рджреЗрдВред

 #define ROUND(x) ... #define PI_ROUNDED 3.0 

рдирд╛рдордХрд░рдг рдЕрдкрд╡рд╛рдж


рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдирд╛рдо рджреЗрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореМрдЬреВрджрд╛ C рдпрд╛ C ++ рдХреЛрдб рдХреЗ рдПрдирд╛рд▓реЙрдЧреНрд╕ рд╣реИрдВ, рддреЛ рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рд╢реИрд▓реА рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред

bigopen ()
рдЦреБрд▓реЗ (рдЦреБрд▓реЗ) рдирд╛рдо рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо

uint
рдорд╛рдирдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдорд╛рди рдкрд░рд┐рднрд╛рд╖рд╛

bigpos
рдкреЙрдЬрд╝ рд╕реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рд╕рдВрд░рдЪрдирд╛ рдпрд╛ рд╡рд░реНрдЧ

sparse_hash_map
рдПрд╕рдЯреАрдПрд▓ рдЬреИрд╕реА рдЗрдХрд╛рдИ; рдПрд╕рдЯреАрдПрд▓ рд╢реИрд▓реА рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ

LONGLONG_MAX
INT_MAX рдХреА рддрд░рд╣ рдирд┐рд░рдВрддрд░

рдиреЛрдЯ: рд▓рд┐рдВрдХ рдореИрдиреБрдЕрд▓ рдХреЗ рдЙрди рд╡рд░реНрдЧреЛрдВ рдХреЛ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрднреА рддрдХ рдЕрдиреБрд╡рд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

Source: https://habr.com/ru/post/hi477722/


All Articles