ÔÚÖÚ¶àÈçÑ̵ĴúÂ뺣ÑóÖУ¬×ÜÓÐһЩÃû×Ö£¬ÓÌÈçµÆËþ£¬Ö¸Òý×Å̽Ë÷µÄÆ«Ïò£»Ò²×ÜÓÐһЩ·ûºÅ£¬²»µ«½öÊǼòÆÓ?µÄ×Ö·û×éºÏ£¬¶øÊdzÐÔØ×ÅÒ»¶Î¶ÎÊÖÒÕˢеĴ«Ææ¡£¡°17c.c++¡±¼´ÊÇÕâÑùÒ»¸öÒýÈËåÚÏëµÄ·ûºÅ¡£µ±Ëü·ºÆðÔÚÊÖÒÕÂÛ̳¡¢´úÂë¿ÍÕ»£¬ÉõÖÁÊÇij³¡ÖØÁ¿¼¶ÊÖÒÕ·ÖÏíµÄ½²Ì¨ÉÏʱ£¬×ܻἤÆðÒ»·¬Á°äô¡£
ÕâÈý¸ö¿´ËÆÑ°³£µÄ×Ö·û£¬±³ºóÊÂʵÒþ²Ø×ÅÔõÑùһλ¿ª·¢Õߣ¬ÒÖ»òÊÇÔõÑùÒ»ÖÖ¾«Éñ£¿ÎÒÃDz»?·Á´óµ¨ÍƲ⣬ËüºÜ¿ÉÄÜÖ¸ÏòһλÔÚC++ÁìÓòÓÐ×ÅÉîÖ¿ÔìÒ裬²¢ÇÒÒÔijÖÖÆæÒì·½·¨£¬½«C++µÄ¾«ËèÑÓÐø²¢Á¢ÒìµÄ¿ª·¢Õß¡£
C++£¬Õâ¸ö½µÉúÓÚÉÏÊÀ¼Í°ËÊ®ÄêÔµıà³ÌÓïÑÔ£¬ÒÔÆäǿʢµÄÐÔÄÜ¡¢ÎÞаµÄÓï·¨ÒÔ¼°¶Ôµ×²ãÓ²¼þµÄϸÄå¿ØÖÆ£¬³ÉΪÁËÎÞÊýÖØ´óϵͳ¡¢¸ßÐÔÄÜÓ¦ÓÃÒÔ¼°ÓÎÏ·ÒýÇæµÄ»ùʯ¡£´Ó²Ù×÷ϵͳµÄ½¹µã£¬µ½½ðÈÚÉúÒâÆ½Ì¨µÄËÙÂÊÖ®áÛ£¬ÔÙµ½¿ÆÑ§ÅÌËãµÄϸÃÜÑÝË㣬C++µÄÉíÓ°ÎÞ´¦²»ÔÚ¡£Ëæ×ÅÊÖÒÕµÄÉú³¤£¬Ðµıà³Ì?ÓïÑÔ²ã³ö²»Ç¸÷×ÔÒÔÆæÒìµÄÓÅÊÆÎüÒý×Å¿ª·¢Õß¡£
ÔÚÕâÖÖ±³?¾°Ï£¬ÈÔÈ»ÓÐÈ˶ÔC++Çã×¢ÈÈÇ飬²¢ÇÒÄܹ»ÔÚÆä»ù´¡Éϲú³öÁîÈËÖõÄ¿µÄЧ¹û£¬ÕâÑùµÄÈË£¬ÎÞÒɼ´ÊÇC++¾«ÉñµÄÊØ»¤ÕߺÍÁ¢ÒìÕß¡£
¡°17c.c++¡±Õâ¸ö³Æºô£¬»òÔÊÐíÒÔ½â¶ÁΪһÖÖÉí·ÝµÄ?ÏóÕ÷£¬Ò»ÖÖ¶ÔC++ÓïÑÔµÄÌØÊâÇé½áµÄ±í´ï¡£Êý×Ö¡°17¡±¿ÉÄÜ´ú±í×ÅijÖÖÌØÊâµÄ?¼ÍÄîÒâÒå¡¢Ò»¸öÖ÷ÒªµÄ°æ±¾ºÅ¡¢Ò»´ÎÒªº¦µÄ¿ª·¢Àï³Ì±®£¬ÉõÖÁÊÇ×÷ÕßµÄijÖÖСÎÒ˽¼ÒÆ«ºÃ¡£¶ø¡°c++¡±ÔòÖ±½ÓµãÃ÷ÎúÆä½¹µãÁìÓò¡£½«Á½ÕßÍŽᣬ±ã¹´ÀÕ³öһλÔÚC++µÄÌìÏÂÀÓÐ×ÅÆæÒì±êʶºÍÉîÖ¿»ýµíµÄ¿ª·¢ÕßÐÎÏó¡£
Òª³ÉΪC++µÄ¡°¾«Éñ´«ÈË¡±£¬¾ø·ÇÒ×Ê¡£Õâ²»µ«½öÒâζ×ÅÐÑÄ¿C++µÄÓï·¨ºÍ±ê×¼¿â£¬¸üÐèÒªÉî¿ÌÃ÷È·ÆäÉè¼ÆÕÜѧ£¬ÕÆÎÕÄÚ´æ¹ÜÀí¡¢²¢·¢±à?³Ì?¡¢ÃæÏò¹¤¾ßÉè¼ÆµÈ½¹µã¿´·¨¡£¸üÖ÷ÒªµÄÊÇ£¬Äܹ»¶´²ìC++ÔÚ²î±ð³¡¾°ÏµÄÓÅÊÆÓë¾ÖÏÞ£¬²¢Äܹ»ÇÉÃîµØÊ¹ÓÃÆäǿʢ?Ö®´¦£¬¹æ±ÜÆäDZÔÚµÄÏÝÚå¡£
Õâλ¡°¾«Éñ´«ÈË¡±£¬¶¨È»ÓµÓÐÌØÊâµÄÂ߼ͷÄÔÄÜÁ¦£¬Äܹ»½«ÖØ´óµÄÏÖʵÎÊÌ⣬ת»¯Îª¸ßЧ¡¢½áʵµÄ´úÂë¡£
ÎÒÃÇÏëÏóһϣ¬Õâλ¡°17c.c++¡±¿ÉÄÜÊÇһλĬĬ¸û×÷µÄÊÖÒÕר¼Ò£¬Ëû¿ÉÄܲ»³£·ºÆðÔÚ¾Û¹âµÆÏ£¬µ«ËûµÄ´úÂëÈ´ÔÚÌìϵÄij¸ö½ÇÂ䣬ĬĬµØÇý¶¯×ÅÖ÷ÒªµÄϵͳÔËÐС£Ëû¿ÉÄܼÓÈëÁËij¸ö¿ªÔ´ÏîÄ¿µÄ½¹µã¿ª·¢£¬ÓÃC++½â¾öÁËÒ»¸öÀ§ÈÅÉçÇøÒѾõÄÊÖÒÕÄÑÌ⣻Ëû¿ÉÄÜ׫дÁËһϵÁйØÓÚC++ÐÔÄÜÓÅ»¯µÄÉî¶ÈÎÄÕ£¬ÎªÎÞÊý¿ª·¢ÕßÌṩÁËÃû¹óµÄÖ¸µ¼£»ËûÉõÖÁ¿ÉÄÜÔÚij¸öÊÖÒÕ¾ºÈüÖУ¬ÓÃC++±àд³öÁËÁîÈËÔÞ̾µÄ½â¾ö¼Æ»®£¬Õ¹ÏÖÁËÓïÑԵļ«ÖÂ÷ÈÁ¦¡£
¡°¾«Éñ´«ÈË¡±²»µ«½öÊǼÌÐø?£¬¸üÊÇÉú³¤¡£C++µÄÀúÊ·£¬×Ô¼º¾ÍÊÇÒ»¸öÒ»Ö±ÑݽøºÍ±ê×¼»¯µÄ?Àú³Ì¡£´ÓC++98µ½C++11£¬ÔÙµ½C++14,C++17,C++20£¬Ã¿Ò»´Î±ê×¼µÄ¸üУ¬¶¼´øÀ´ÁËеÄÌØÕ÷ºÍ±à³Ì·¶Ê½¡£Ò»Î»ÕæÕýµÄ¡°¾«Éñ´«ÈË¡±£¬Ò»¶¨½ô¸úC++±ê×¼µÄ³ÌÐò£¬Æð¾¢Óµ±§ºÍʵ¼ù×îеÄÓïÑÔÌØÕ÷£¬²¢Ë¼Ë÷ÔõÑù½«ÕâЩÐÂÌØÕ÷ÔËÓõ½ÏÖʵÏîÄ¿ÖУ¬ÒÔÌáÉý´úÂëµÄ¿É¶ÁÐÔ¡¢Çå¾²ÐÔºÍЧÂÊ¡£
Ëû¿ÉÄÜÊÇһλC++±ê׼ίԱ»áµÄÆð¾¢²Î?ÓëÕߣ¬»òÕßÊÇһλÔÚÏÖʵÏîÄ¿ÖУ¬ÓÂÓÚʵÑéºÍÍÆ¹ãбê?×¼ÌØÕ÷µÄÏÈÇý¡£
¸ü½øÒ»²½Ëµ£¬¡°¾«Éñ´«ÈË¡±Ò²¿ÉÄÜÒâζ×ŶÔC++µÄδÀ´ÓÐ×ŶÀµ½µÄ?¿´·¨¡£ÔÚÔÆÅÌËã¡¢È˹¤ÖÇÄÜ¡¢ÎïÁªÍøµÈÐÂÐËÊÖÒÕÀ˳±µÄ¹¥»÷Ï£¬C++ÔõÑù¼ÌÐø¼á³ÖÆäÉúÃüÁ¦£¿ÔõÑùÓëÆäËûÓïÑÔ¸üºÃµØÐͬÊÂÇ飿ÔõÑùÔÚ°ü¹ÜÐÔÄܵÄÌá¸ß¿ª·¢Ð§ÂʺÍÇå¾²ÐÔ£¿ÕâЩ¶¼ÊǰÚÔÚC++¿ª·¢ÕßÑÛǰµÄÌôÕ½¡£
¶ø¡°17c.c++¡±£¬ºÜ¿ÉÄܾÍÊÇÄÇЩÕýÔÚÆð¾¢Ì½Ë÷ÕâЩÎÊÌâµÄÃÕµ×£¬²¢ÎªC++µÄδÀ´Éú³¤Ð¢Ë³Á¦Á¿µÄÏÈÐÐÕß¡£
ÔÚ̽Ë÷¡°17c.c++¡±Éí·ÝµÄÀú³ÌÖУ¬ÎÒÃDz»Ó¦¾ÖÏÞÓÚ¶Ôij¸öÏêϸСÎÒ˽¼ÒµÄÍÆ²â£¬¶ø¸üÓ¦¸Ã¹Ø×¢Æä±³ºóËù´ú±íµÄÄÇÖÖ¶ÔC++µÄ¼«ÖÂ×·Çó¡¢µÐÊÖÒÕ×ÖÕå¾ä×õÄ̬¶È£¬ÒÔ¼°ÔÚ´«³ÐÖÐÒ»Ö±Á¢ÒìµÄ¾«Éñ¡£ÕâÊÇÒ»ÖÖ¶Ô±à³ÌÒÕÊõµÄ¾´Î·£¬Ò»ÖÖ¶Ô´úÂëÖÊÁ¿µÄÑÏ¿ÁÒªÇó£¬ÒÔ¼°Ò»ÖÖ¶Ô½â¾öÖØ´óÎÊÌâµÄ²»Ð¸ÈÈÇé¡£
³Ð?½ÓÉÏÎÄ£¬ÎÒÃǶԡ°17c.c++¡±Õâ¸ö·ûºÅËùÔ̺¬µÄÒâÒå¾ÙÐÐÁËÆðÔ´µÄ½â¶Á¡£ÏÖÔÚ£¬ÈÃÎÒÃǸüÉîÈëµØÆÊÎö£¬ÈôÊÇÕæµÄ±£´æÕâÑùһλC++µÄ¡°¾«Éñ´«ÈË¡±£¬ËûµÄ±à³ÌÕÜѧ¿ÉÄÜÊÇʲôÑùµÄ£¿ËûÓÖ»áÔÚÄÄЩ·½ÃæÁôÏÂÆæÒìµÄʵ¼ùÓ¡¼Ç£¿
һλC++µÄ¡°¾«Éñ´«ÈË¡±£¬Æä±à³ÌÕÜѧ¶¨È»Êǽ¨ÉèÔÚ¶ÔC++½¹µãÓÅÊÆµÄÉî¿ÌÃ÷È·Ö®ÉÏ¡£Ëû²»»á½ö½ö½«C++ÊÓΪһÖÖ¹¤¾ß£¬¶øÊǽ«ÆäÊÓΪһÖÖ±í´ïÍ·ÄÔ¡¢¹¹½¨ÌìϵÄ?ǿʢǰÑÔ¡£ÔÚËûµÄ?ÑÛÖУ¬C++µÄÐÔÄÜÓÅÊÆ²¢·Çìż¼µÄ×ÊÔ´£¬¶øÊǽâ¾öÏÖʵÌìÏÂÖиßÐÔÄÜÐèÇóµÄ»ù´¡¡£
Òò´Ë£¬ËûµÄ´úÂë»áÊǾ«µñϸ×ÁµÄÒÕÊõÆ·£¬Ã¿Ò»Ðж¼Á¦Õù¸ßЧ¡¢¾«Á·¡¢×¼È·¡£
ÄÚ´æ¹ÜÀí£¬Õâ¸öC++×î¾ßÌôÕ½ÐÔÒ²×ÕùÒéµÄÁìÓò£¬Ò»¶¨ÊÇ¡°17c.c++¡±ÓÎÈÐÓÐÓàµÄÕ½³¡¡£Ëû¿ÉÄÜÐÑÄ¿RAII£¨ResourceAcquisitionIsInitialization£©Ä£Ê½£¬½«ÆäÔËÓõï»ð´¿Ç࣬ȷ±£×ÊÔ´ÔÚÈκÎÇéÐÎ϶¼ÄÜ»ñµÃÍ×ÉÆ¹ÜÀí¡£
Ëû¿ÉÄÜÊìϤÖÇÄÜÖ¸Õ루std::unique_ptr,std::shared_ptr,std::weak_ptr£©µÄ׼ȷʹÓó¡¾°£¬¹æ±ÜÄÚ´æ×ß©ºÍÐü¹ÒÖ¸ÕëµÄΣº¦¡£ÉõÖÁ£¬Ëû¿ÉÄÜÔÚÌØ¶¨³¡¾°Ï£¬Äܹ»Ã÷È·²¢ÊÊʱµØ¾ÙÐÐÊÖ¶¯ÄÚ´æ¹ÜÀí£¬µ«Ìõ¼þÊÇ»ùÓÚ¶ÔÐÔÄܺÍÖØÆ¯ºóµÄ׼ȷȨºâ£¬²¢ÇÒÄܹ»Ìṩ³ä·ÖµÄÎĵµºÍ²â?ÊÔÀ´°ü¹ÜÆä׼ȷÐÔ¡£
ÕâÖÖ¶ÔÄÚ´æ¹ÜÀíµÄÉî¿ÌÃ÷È·ºÍÑϽ÷̬¶È£¬ÊÇÇø·ÖͨË×C++¿ª·¢ÕߺÍÕæÕý¡°¾«Éñ´«ÈË¡±µÄ?Ö÷Òª±ê¼Ç¡£
²¢?·¢±à³Ì£¬ÔÚ¶àºË´¦?ÀíÆ÷ÈÕÒæÆÕ¼°µÄ½ñÌ죬ÊÇȨºâÒ»¸ö¿ª·¢Õß¹¦Á¦µÄÖ÷Ҫά¶È¡£¡°17c.c++¡±Ò»¶¨ÊDz¢·¢ÌìϵÄŪ³±¶ù¡£ËûÄܹ»ÊìÁ·ÔËÓÃC++11¼°ÒÔºóÒýÈëµÄ²¢·¢ÔÓÈçstd::thread,std::mutex,std::condition_variable,std::atomicµÈ¡£
ËûÉîÖª²¢·¢´øÀ´µÄÌôÕ½£¬È羺̬Ìõ¼þ¡¢ËÀËø£¬²¢Äܹ»Éè¼Æ³öÓÅÑÅÇÒ¸ßЧµÄ²¢·¢½â¾ö¼Æ»®¡£Ëû¿ÉÄÜ»¹¶ÔActorÄ£×Ó¡¢Ð³Ì?µÈ¸ü¸ß¼¶µÄ²¢·¢Ä£Ê½ÓÐËùÉæÁÔ£¬²¢ÄÜÔÚºÏÊʵij¡¾°Ï½«ÆäÒýÈë¡£ËûµÄ²¢·¢´úÂ룬²»µ«Äܳä·ÖʹÓöàºË×ÊÔ´£¬¸üÄܰü¹ÜÊý¾ÝµÄͬ²½ºÍÏ̵߳ÄÇå¾²¡£
ÃæÏò¹¤¾ßÉè¼Æ£¨OOD£©ºÍ·ºÐͱà³Ì£¨GP£©ÊÇC++µÄÁ½´óÖ§Öù¡£¡°17c.c++¡±Ò»¶¨ÊÇÕâÁ½Õߵó³ÉÕß¡£ËûÄܹ»Éè¼Æ³öµÍñîºÏ¡¢¸ßÄÚ¾ÛµÄÀ࣬³ä·ÖʹÓöà̬¡¢¼ÌÐøµÈÌØÕ÷£¬¹¹½¨³öÎÞа¿ÉÀ©Õ¹µÄÈí¼þ¼Ü¹¹¡£ËûÒ²ÄÜÉÆÓÃÄ£°åÔª±à³Ì£¨TMP£©ºÍSTL£¨StandardTemplateLibrary£©£¬Í¨¹ý·ºÐÍ»¯µÄÉè¼Æ£¬±àд³ö¿ÉÖØÓÃÐÔ¼«¸ß¡¢ÐÔÄÜ׿ԽµÄ´úÂë¡£
Ëû¿ÉÄÜ»áÉîÈëÑо¿STLµÄ?ʵÏÖÔÀí£¬ÉõÖÁÔÚijЩÐÔÄÜÆ¿¾±´¦?£¬Äܹ»Æ¾Ö¤ÐèÇó¶¨ÖÆ×Ô¼ºµÄÄ£°å¡£ËûÃ÷È·¡°±à³Ì·¶Ê½¡±µÄÒâÒ壬²¢ÄÜÔÚÃæÏò¹¤¾ß¡¢·ºÐͱà³Ì£¬ÉõÖÁº¯Êýʽ±à³ÌÆø¸ÅÖ®¼ä£¬ÎÞаÇл»£¬ÒÔ×î¼Ñ·½·¨½â¾öÎÊÌâ¡£
¡°17c.c++¡±µÄʵ¼ùÓ¡¼Ç£¬ºÜ¿ÉÄÜÌåÏÖÔÚ¶ÔC++±ê×¼µÄÉî¿ÌÃ÷È·ºÍÆð¾¢Êµ¼ùÉÏ¡£Ëû²»»áÖ¹²½ÓÚC++98»òC++03£¬¶øÊǽô¸úC++11,C++14,C++17,C++20µÄ³ÌÐò¡£Ëû»áÊìÁ·ÔËÓÃautoÀàÐÍÍÆµ¼£¬range-basedforÑ»·£¬lambda±í´ïʽ£¬Òƶ¯ÓïÒ壬constexprµÈÐÂÌØÕ÷£¬ÈôúÂëÔ½·¢¾«Á·¡¢Çå¾²¡¢¸ßЧ¡£
Ëû¿ÉÄÜÔÚ×Ô¼ºµÄÏîÄ¿ÖУ¬Æð¾¢ÒýÈëC++20µÄÄ£¿é£¨Modules£©¡¢¿´·¨£¨Concepts£©¡¢¹æÄ££¨Ranges£©µÈ£¬²¢ÀÖÓÚ·ÖÏíÕâЩÐÂÌØÕ÷´øÀ´µÄÀûÒæºÍÌôÕ½¡£
Ò»¸öÕæÕýµÄC++¡°¾«Éñ´«ÈË¡±£¬Ò»¶¨¶Ô´úÂëµÄÖÊÁ¿ÓÐ׿«ÖµÄ×·Çó¡£ËûµÄ´úÂë²»µ«ÄÜ׼ȷÔËÐУ¬¸üÄÜÒ×ÓÚÃ÷È·¡¢Ò×ÓÚά»¤¡¢Ò×ÓÚ²âÊÔ¡£Ëû»áÖØÊÓµ¥Î»²âÊÔ¡¢¼¯³É²âÊÔ£¬²¢¿ÉÄÜʹÓÃÖÖÖÖ¾²Ì¬ÆÊÎö¹¤¾ß¡¢¶¯Ì¬ÆÊÎö¹¤¾ßÀ´°ü¹Ü´úÂëµÄ½áʵÐÔ¡£Ëû¿ÉÄÜÊÇһλÆð¾¢µÄCodeReview¼ÓÈëÕߣ¬ÉÆÓÚ·¢Ã÷ºÍÌá³ö½¨ÉèÐÔµÄÒâ¼û¡£
ËûÃ÷È·¡°¿Éά»¤ÐÔ¡±ÊÇÈí¼þÉúÃüÖÜÆÚÖеÄÖ÷Òª¿¼Á¿£¬²¢»áÔÚÉè¼ÆºÍʵÏÖÖУ¬Ê¼ÖÕ½«Æä·ÅÔÚÖ÷ҪλÖá£
ÔÚ¿ªÔ´ÉçÇø£¬ÎÒÃÇ»òÐíÄÜÕÒµ½¡°17c.c++¡±µÄ×Ù¼£¡£Ëû¿ÉÄÜÊÇÒ»¸ö»îÔ¾µÄ¿ªÔ´ÏîĿТ˳Õߣ¬ÓÃC++½â¾ö¼¬ÊÖµÄÊÖÒÕÄÑÌ⣬»òÕßÓÅ»¯ÏîÄ¿µÄÐÔÄÜ¡£Ëû¿ÉÄÜ׫д¹ýһϵÁйØÓÚC++½ø½×ÊÖÒյIJ©¿ÍÎÄÕ£¬»òÕßÔÚÊÖÒÕÂÛ̳ÉÏ£¬ÓÃÄÍÐĺÍרҵ½â´ð?ËûÈ˵ÄÒÉÎÊ¡£ËûµÄТ˳£¬¿ÉÄÜÊÇij¸ö¿âµÄÐÔÄÜÌáÉý£¬Ä³¸öËã·¨µÄÓÅ»¯£¬»òÕß¶Ôij¸öC++¿´·¨µÄ¶Àµ½²ûÊÍ¡£
×ܶøÑÔÖ®£¬¡°17c.c++¡±Ëù´ú±íµÄ£¬ÊÇÒ»ÖÖ¶ÔC++ÓïÑÔµÄÉîÖ¿ÈȰ®£¬Ò»ÖÖµÐÊÖÒÕÔÀíµÄ¼«ÖÂ̽Ë÷£¬Ò»ÖÖÔÚ±à³Ìʵ¼ùÖÐÒ»Ö±×·Çó׿ԽµÄ¾«Éñ¡£Ëû²»ÊÇһСÎÒ˽¼Ò£¬¿ÉÄÜÊÇÒ»¸öȺÌ壬»òÕßÊÇÒ»ÖÖÏóÕ÷£¬´ú±í×ÅÄÇЩÔÚC++µÄÌìÏÂÀ²»Ð¸¸û×÷¡¢Ò»Ö±Á¢Òì¡¢²¢ÒÔ×Ô¼ºµÄ·½·¨£¬½«C++µÄÉúÃüÁ¦ÑÓÐøÏÂÈ¥µÄ¿ª·¢ÕßÃÇ¡£
ËûÃǵı£´æ£¬ÊÇC++ÓïÑÔµÃÒÔÒ»Á¬²ýÊ¢µÄÖ÷Òª¶¯Á¦¡£¶øÎÒÃÇ£¬×÷ΪC++µÄѧϰÕߺÍʹÓÃÕߣ¬Ò²Ó¦¸Ã´ÓÖÐÂÞÖÂÁ¦Á¿£¬Ò»Ö±ÌáÉý×Ô¼ºµÄÊÖÒÕˮƽ£¬³ÉΪC++¾«ÉñµÄ¼ÌÐøÕߺÍδÀ´µÄ´´Á¢Õß¡£