ÔÚºÆå«ÈçÑ̵ĴúÂ뺣ÑóÖУ¬×ÜÓÐһЩÃû×Ö£¬ÈçͬµÆËþ£¬Ö¸Òý×ÅË÷ÇóµÄ?·½Ïò£»Ò²×ÜÓÐһЩ·ûºÅ£¬²»½ö½öÊǵ¥Ò»µÄ×Ö·û×éºÏ£¬¶øÊ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¸ö¾ßÌåÓ×ÎҵIJ²⣬¶ø¸üÓ¦¸Ã¹Ø×¢Æä±³ºóËù´ú±íµÄÄÇÖÖ¶ÔC++µÄ¼«ÖÂ×êÓª¡¢¶Ô¼¼ÊõһĿʮÐеÄ̬¶È£¬ÒÔ¼°ÔÚ´«³ÐÖв»ÐÝ´´ÐµÄÐÄÁé¡£ÕâÊÇÒ»ÖÖ¶Ô±à³ÌÒÕÊõµÄ¾´Î·£¬Ò»ÖÖ¶Ô´úÂëÖÊÁ¿µÄÑÏ¿ÁÒªÇó£¬ÒÔ¼°Ò»ÖÖ¶Ô½â¾ö¸´ÔÓÎÊÌâµÄ²»Ð¸Öܵ½¡£
³Ð½ÓÉÏÎÄ£¬ÎÒÃǶԡ°17c.c++¡¹Øâ¸ö·ûºÅËùÔ̺¬µÄÒâ˼½øÐÐÁ˳õ²½µÄ½â¶Á¡£´Ë¿Ì£¬ÈÃÎÒÃǸüÉî¿ÌµØ·Ö½â£¬ÈôÊÇÕæµÄ´æÔÚÕâÑùһλC++µÄ¡°ÐÄÁé´«ÈË¡±£¬ËûµÄ±à³ÌÕÜѧ¿ÉÄÜÊÇʲôÑùµÄ£¿ËûÓÖ»áÔÚÄÄЩ·½ÃæÁôϹÖÒìµÄʵ¼ÊÓ¡¼Ç£¿
һλC++µÄ¡°ÐÄÁé´«ÈË¡±£¬Æä±à³ÌÕÜѧ¶¨È»ÊdzÉÁ¢ÔÚ¶Ô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²Î¼ÓÕߣ¬³¤ÓÚ·¢ÏÖºÍÌá³ö½¨ÉèÐԵ͍¼û¡£
ËûÀí½â¡°¿ÉÊØ»¤ÐÔ¡±ÊÇÈí¼þÐÔÃüÖÜÆÚÖеijÁÒª¿¼Á¿£¬²¢»áÔÚÉè¼ÆºÍʵÏÖÖУ¬Ê¼ÖÕ½«Æä·ÅÔÚ³ÁÒªµØÎ»¡£
ÔÚ¿ªÔ´ÉçÇø£¬ÎÒÃÇ»òÐíÄÜÕÒµ½¡°17c.c++¡±µÄ×ÙÓ°¡£Ëû¿ÉÄÜÊÇÒ»¸ö»îÔ¾µÄ¿ªÔ´ÏîÄ¿¹±Ï×Õߣ¬ÓÃC++½â¾öÀ±ÊÖµÄ?¼¼ÊõÄÑÌ⣬»òÕßÓÅ»¯ÏîÖ÷ÕÅ»úÄÜ¡£Ëû¿ÉÄÜ׫д¹ýһϵÁйØÓÚC++½ø½×¼¼ÊõµÄ²©¿ÍÎÄÕ£¬»òÕßÔÚ¼¼ÊõÂÛ̳ÉÏ£¬ÓÃÄÍÐĺÍרҵ½â´ðËûÈ˵ÄÒÉÄÑ¡£ËûµÄ¹±Ï×£¬¿ÉÄÜÊÇij¸ö¿âµÄ»úÄÜÌáÉý£¬Ä³¸öËã·¨µÄÓÅ»¯£¬»òÕß¶Ôij¸öC++¸ÅÏëµÄ?¶Àµ½²ûÊÍ¡£
×ܶøÑÔÖ®£¬¡°17c.c++¡±Ëù´ú±íµÄ£¬ÊÇÒ»ÖÖ¶ÔC++˵»°µÄÉîºñ¿á°®??£¬Ò»ÖÖ¶Ô¼¼ÊõµÀÀíµÄ?¼«ÖÂË÷Çó£¬Ò»ÖÖÔÚ±à³Ìʵ¼ÊÖв»ÐÝ×êӪ׿ԽµÄÐÄÁé¡£Ëû²»ÊÇÒ»Ó×ÎÒ£¬¿ÉÄÜÊÇÒ»¸öȺÌ壬»òÕßÊÇÒ»ÖÖÏóÕ÷£¬´ú±í×ÅÄÇЩÔÚC++µÄÊÀ½çÀ²»Ð¸¸û×÷¡¢²»ÐÝ´´Ð¡¢²¢ÒÔ×Ô¼ºµÄ·½Ê½£¬½«C++µÄÐÔÃüÁ¦Ò»Á¬ÏÂÈ¥µÄ¿ª·¢ÕßÃÇ¡£
ËûÃǵĴæÔÚ£¬ÊÇC++˵»°µÃÒÔ³ÖÐø·±»ªµÄ³ÁÒª¶¯Á¦¡£¶øÎÒÃÇ£¬×÷ΪC++µÄ½ø½¨ÕߺÍʹÓÃÕߣ¬Ò²Ó¦¸Ã´ÓÖÐÂÞÖÂÁ¦Á¿£¬²»ÐÝÌáÉý×Ô¼ºµÄ¼¼Êõˮƽ£¬³ÉΪC++ÐÄÁéµÄ¼Ì³ÐÕߺͽ«À´µÄ´´ÔìÕß¡£