ÍâµØÊ±¼ä2025-10-20bvcmnxbvusegruiwoehrlkegwh
C++Ö®¸¸Óë±ê×¼»¯µÄ³õÐÄ
µ±ÄãÌýµ½¡°C++17¡±£¬ÊÇ·ñÔøºÃÆæÕâ´®×Ö·û±³ºóÕ¾×ÅÔõÑùһȺÈË£¿×Åʵ£¬ÃյײØÔÚһλ±à³Ì¾Þ½³µÄÃû×ÖÀ¡ªBjarneStroustrup¡£Êǵģ¬C++ÓïÑÔµÄÊ×´´ÈË£¬Ò²ÊÇC++±ê×¼»¯Àú³ÌÖÐʼÖÕµÄÁé»êÈËÎï¡£µ«¡°C++17¡±µÄÆð²Ý¾ø·ÇÒ»ÈËÖ®¹¦£¬¶øÊÇÒ»³¡»ã¾ÛÈ«Çò¶¥¼âÖǻ۵ÄÐ×÷Ê¢Ñç¡£
1980ÄêÔ£¬StroustrupÔÚ±´¶ûʵÑéÊÒ¿ª·¢³öC++£¬³õÖ¾ÊÇÀ©Õ¹CÓïÑÔ£¬¸¶ÓëÆäÃæÏò¹¤¾ßµÄ÷ÈÁ¦¡£Ëæ×ÅC++±»ÆÕ±éÓ¦Ó㬱ê×¼»¯ÐèÇóÈÕÒæÆÈÇС£1998Ä꣬Ê׸öISO/IEC14882±ê×¼£¨C++98£©½µÉú£¬Stroustrup×÷Ϊ½¹µãÉè¼ÆÕߣ¬ÓëISOC++ίԱ»á£¨¼ò³ÆWG21£©ÅäºÏµÓÚ¨ÁË»ù´¡¡£
ÒÔºóµÄC++03¡¢C++11¡¢C++14ÔÙµ½C++17£¬Ã¿Ò»°æµü´ú¶¼Äý¾ÛÁËίԱ»áÊý°ÙÃûר¼ÒµÄÐÄѪ¡£
C++17µÄÆð²ÝÍŶÓÊÂʵÊÇË£¿WG21ίԱ»áÊÇÒªº¦Ãյס£Õâ¸öÓÉÈ«Çò¿ª·¢Õß¡¢Ñ§ÕßºÍÆóÒµ´ú±í×é³ÉµÄ×éÖ¯£¬Í¨¹ýÌá°¸¡¢ÌÖÂÛ¡¢Í¶Æ±µÄÃñÖ÷Á÷³ÌÍÆ¶¯ÓïÑÔÑݽø¡£StroustrupËä²»ÔÙµ¥¶À¡°Æð²Ý¡±£¬µ«×÷ΪίԱ»áµÄ½¹µãÕÕÁÏ£¬ËûµÄÉè¼ÆÕÜѧʼÖչᴮÆäÖС£ÀýÈ磬C++17Ç¿µ÷¼ò»¯´úÂë¡¢ÌáÉýÐÔÄÜÓëÇå¾²ÐÔ£¬ÕýÑÓÐøÁËËû¡°ÈÃC++¸üÓÅÑŸßЧ¡±µÄÔ¸¾°¡£
ÓÐȤµÄÊÇ£¬C++17µÄÐí¶àÌØÕ÷Ô´×ÔÉçÇøÐ¢Ë³¡£ºÃ±Èstd::optional£¨×èÖ¹¿ÕÖµÀ§ÈÅ£©¡¢½á¹¹»¯°ó¶¨£¨¼ò»¯¶à·µ»ØÖµ´¦Öóͷ££©µÈ£¬¶¼ÊÇ¿ª·¢ÕßÒ»Ñùƽ³£Í´µãµÄÖ±½Ó»ØÓ¦¡£ÕâÒâζ×Å£¬C++17µÄ¡°Æð²ÝÕß¡±²»µ«ÊÇίԱ»áר¼Ò£¬¸üÊÇÎÞÊýÒ»Ïß³ÌÐòÔ±¡ª¡ªËûÃǵÄʵ¼ùÐèÇóÇý¶¯ÁËÓïÑԵĽø»¯¡£
͸¹ýC++17£¬ÎÒÃÇ¿´µ½¿ªÔ´Óë±ê×¼»¯ÔõÑùÍêÉÆÈںϡ£Ï´ε±ÄãÓÃÒ»Ðо«Á·´úÂëʵÏÖÖØ´ó¹¦Ð§Ê±£¬±ðÍüÁ˱³ºóÄÇȺĬĬ¸û×÷µÄ¡°ÓïÑÔÐÞ½¨Ê¦¡±¡£
´ÓÌá°¸µ½±ê×¼£ºC++17µÄ½µÉúÖ®ÂÃ
C++17µÄÆð²ÝÀú³ÌÓÌÈçÒ»²¿¿Æ¼¼¼Í¼Ƭ£¬³äÂúÐ×÷¡¢±ç˵ÓëÍ»ÆÆ¡£Ëü²¢·Çƾ¿Õ½µÉú£¬¶øÊÇÀú¾5ÄêÄ¥Á¶£¬´ÓÊý°Ù·ÝÌá°¸ÖÐɸѡ³öµÄÓ¢»ª¡£ÕâÒ»ÇÐʼÓÚ2012ÄêC++11Ðû²¼ºó£¬ÉçÇø¶Ô¡°¸üÏÖ´ú¡¢¸üÒ×ÓᱵĺôÉù¡£
WG21ίԱ»á½ÓÄÉÑÏ¿áµÄÁ÷³Ì£ºÈκÎÐÂÌØÕ÷ÐèÒÔÌá°¸£¨Paper£©ÐÎʽÌá½»£¬ÂÄÀúÑо¿¡¢ÌÖÂÛ¡¢Ð޸ġ¢Í¶Æ±µÈ¶àÂÖïÔÌ¡£ÀýÈ磬C++17µÄ¡°Îļþϵͳ¿â¡±£¨std::filesystem£©Ô´×ÔBoost¿âµÄʵ¼ùÑéÖ¤£¬ÓÉ¿ª·¢ÕßBemanDawesÌá°¸²¢Íƶ¯£»²¢ÐÐËã·¨£¨std::parallel)ÔòÈÚºÏÁËIntel¡¢GoogleµÈÆóÒµµÄÐÔÄÜÓÅ»¯ÂÄÀú¡£
ÿһ²½¶¼ÌåÏÖ×Å¡°ÊÊÓÃÖ÷Ò塱¾«Éñ¡ª¡ªÖ»ÄÉÈë³ÉÊì¡¢ÆÕ±éÐèÇóµÄ¹¦Ð§¡£
StroustrupÔÚÀú³ÌÖÐÊÎÑÝ¡°ÊØÃÅÈË¡±½ÇÉ«¡£Ëû¼á³ÖC++Ó¦¼á³Ö¡°Á㿪ÏúÁýͳ¡±ÔÔò£¨¼´¸ßÐÔÄܲ»µ±Ð£©£¬×赲̫¹ýÖØ´ó»¯¡£ÕýÒòÔÆÔÆ£¬C++17ÉáÆúÁËһЩʵÑéÐÔ¿´·¨£¬¾Û½¹ÓÚÌáÉý¿ª·¢Ð§ÂÊ¡£ºÃ±Èifconstexpr±àÒëʱÌõ¼þÅжϣ¬ÈÃÄ£°å´úÂë¸ü¾«Á·£»ÄÚÁª±äÁ¿Ïû³ýÈßÓà½ç˵¡ª¡ªÕâЩ¸Ä¶¯¿´ËÆÏ¸Ð¡£¬È´×ãÒÔ½ÚÔ¼³ÌÐòÔ±Êý°ÙÍòСʱ¡£
ÖµµÃ×¢ÖØµÄÊÇ£¬C++17µÄÆð²ÝÒ²ÃæÁÙÌôÕ½¡£Î¯Ô±»áÐèÆ½ºâоÉÌØÕ÷¼æÈÝÐÔ¡¢±àÒëÆ÷ʵÏÖÄѶȡ¢ÉçÇø²»Í¬µÈÎÊÌâ¡£µ«×îÖÕ£¬2017ÄêÐû²¼µÄISO/IEC14882:2017ÒÔ¸ßÆ±Í¨¹ý£¬³ÉΪC++ÑݽøÊ·ÉϵÄÖ÷ÒªÀï³Ì±®¡£
½ñÌ죬C++17ÒÑÉøÍ¸ÖÁ²Ù×÷ϵͳ¡¢ÓÎÏ·ÒýÇæ¡¢½ðÈÚϵͳµÈ½¹µãÁìÓò¡£ËüµÄ¹ÊÊÂÌáÐÑÎÒÃÇ£ºÎ°´óÊÖÒÕÀúÀ´²»Êǵ¥ÈËÐ㣬¶øÊÇÕûÌåÖǻ۵Ľᾧ¡£ÈôÄãÏëÉî¶ÈÌåÑéC++17£¬ÎÞ·Á´ÓÒ»ÐÐstd::variant»òÒ»´Î²¢ÐÐÅÅÐò×îÏÈ¡ª¡ªÃ¿Ò»¸öÓï·¨ÌDZ³ºó£¬¶¼ÓÐһȺÈËΪÄãÆÌ·¡£
ÌÀÄ·ÊåÊåµÄÎÂܰÌáÐÑÊ®°Ë³åÉ׿ÏÈÑ£¬ÃÛÑ©±ù³ÇÒªÂôÆ¡¾ÆÁË£¡¿ç½çÊÕ¹º¸£Â¹¼Ò£¬¡°Ñ©Íõ¡±½«ÂôÏÖ´òÏÊÆ¡