ãã®ããŒãžã§ã¯ãC++ã®ããŒãžã§ã³ããšã®èšèªæ©èœããã©ã®ã³ã³ãã€ã©ãã©ã®ããŒãžã§ã³ãããµããŒãããŠãããããŸãšããã
ã©ã€ãã©ãªæ©èœã«ã€ããŠã¯ãæ¬ãµã€ãã®ãªãã¡ã¬ã³ã¹ã§åæ©èœãåç §ããŠãããããã
C++11èšèªæ©èœã®å®è£ ç¶æ³
| èšèªæ©èœ | 説æ | GCC | Clang | ICC | MSVC |
|---|---|---|---|---|---|
N2341: alignas |
ã¢ã©ã€ã¡ã³ãæå® | 4.8 | 3.0 | 15.0 | 2015 2003ãããã¯ãã以åãããã __declspec(align(x))æ§æã§ä»£æ¿å¯èœã |
N2341: alignof |
ã¢ã©ã€ã¡ã³ãååŸ | 4.5 | 3.3 | 15.0 | 2015 2003ãããã¯ãã以åãããã __alignofã§ä»£æ¿å¯èœã |
| N1984: 倿°ã®åæšè«ã®ããã®auto | åæšè« | 4.4 | 2.9 | 12.0 | 2010 |
N2343: decltype |
åŒã®åãååŸ | 4.3 | 2.9 | 13.0 | 2010 (partial) 2012 |
| N1653: C99äºæã®ããªããã»ããµ | å¯å€åŒæ°ãã¯ããPragmaæŒç®åã__func__ |
4.3 | 2.9 | 11.1 | 2005 (partial): å¯å€åŒæ°ã®ã¿ _Pragmaã®ä»£ããã«__pragmaãååšããã2019 Update 6 |
N2235: constexpr |
宿°åŒ | 4.6 | 3.1 | 13.0 (partial) 14.0 |
2015 (partial) 2015 Update 1 |
N2346: 颿°ã®default/deleteå®£èš |
èªåå®çŸ©ãããç¹æ®é¢æ°ã®å¶åŸ¡ | 4.4 | 3.0 | 12.0 | 2013: ã ãŒãã³ã³ã¹ãã©ã¯ã¿ã»ã ãŒã代å
¥æŒç®åã®defaultã¯äžå¯2015 |
| N1986: å§è²ã³ã³ã¹ãã©ã¯ã¿ | ã³ã³ã¹ãã©ã¯ã¿ããä»ã®ã³ã³ã¹ãã©ã¯ã¿ã«åŠçãå§è²ãã | 4.7 | 3.0 | 14.0 | 2013 |
| N2437: æç€ºçãªå倿æŒç®åã®ãªãŒããŒããŒã | æç€ºçãªå倿ãè¡ãããå Žåã«ã®ã¿åŒã³åºãããæŒç®åããªãŒããŒããŒãã§ããããã«ãã | 4.5 | 3.0 | 14.0 | 2013 |
N1791: friend宣èšã§ããå¯Ÿè±¡ãæ¡åŒµ |
ãã³ãã¬ãŒããã©ã¡ãŒã¿ãåã®å¥åãfriendå®£èš |
4.7 | 2.9 | 11.1 (partial) 12.0 |
2010 |
N1987: extern template |
ãã³ãã¬ãŒãã®ã€ã³ã¹ã¿ã³ã¹åææ¢ | 3.3 | 2.9 | 11.1 | 6.0 |
| N2540: ç¶æ¿ã³ã³ã¹ãã©ã¯ã¿ | åºåºã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ãç¶æ¿ãã | 4.8 | 3.3 | 15.0 | 2015 |
| N2927: ã©ã ãåŒ | 颿°ãªããžã§ã¯ãããã®å Žã«æžã | 4.5 | 3.1 | 12.0 | 2010 (partial) 2012 |
| N2657: ããŒã«ã«åãšç¡ååãããã³ãã¬ãŒãåŒæ°ãšããŠäœ¿çšããããšãèš±å¯ | ããŒã«ã«ããã³ç¡åãšããŠå®çŸ©ããã¯ã©ã¹ãåæåãããã³ãã¬ãŒãåŒæ°ãšããŠæž¡ããããã«ãã | 4.5 | 2.9 | 12.0 | 2010 |
N1811: long longå |
64ããã以äžã®å€§ãããæã€æŽæ°å | 4.3 | 2.9 | 11.1 | 2003 |
| N2535: ã€ã³ã©ã€ã³åå空é | ãã¹ãããåå空éã«ãééçã«ã¢ã¯ã»ã¹ãã | 4.4 | 2.9 | 14.0 | 2015 |
N2249: char16_tãšchar32_t |
UTF-16ãšUTF-32ã®æåå | 4.4 | 2.9 | 12.1 (Windows: partial) 12.1 (GNU/Linux, macOS) 14.0 |
2015 2010ããçµã¿èŸŒã¿åã§ã¯ãªãåã®å¥åãšããŠååšãã |
| N2442: UTF-8æååãªãã©ã« | charã®æååãUTF-8ãšã³ã³ãŒãã£ã³ã°ãããã¬ãã£ãã¯ã¹ |
4.5 | 3.0 | 12.1 (Windows: partial) 12.1 (GNU/Linux, macOS) 14.0 |
2015 |
| N2442: çæååãªãã©ã« | æååãªãã©ã«ã«Rãã¬ãã£ãã¯ã¹ãä»ããããšã§ããšã¹ã±ãŒãã·ãŒã±ã³ã¹ãç¡èŠãã | 4.5 | 3.0 | 14.0 | 2013 |
| N2765: ãŠãŒã¶ãŒå®çŸ©ãªãã©ã« | ãªãã©ã«ã®ãµãã£ãã¯ã¹ããŠãŒã¶ãŒå®çŸ©ãã | 4.7 | 3.1 | 15.0 | 2015 |
| N2541: æ»ãå€ã®åãåŸçœ®ãã颿°å®£èšæ§æ | 以äžã®ãããªåœ¢åŒã§ã®é¢æ°å®£èšauto f(arg_types...) -> return_type |
4.4 | 2.9 | 12.0 | 2010 |
N2431: nullptr |
ãã«ãã€ã³ã¿ã衚ããã€ã³ã¿ãªãã©ã« | 4.6 | 3.0 | 11.1 | 2010 |
| N1757: ãã³ãã¬ãŒãã§ã®é£ç¶ããå³å±±ã«ãã³ãèš±å¯ | vector<basic_string<char>>ã®ããã«ã>>ãã¹ããŒã¹ã空ããã«èšè¿°å¯èœã«ãã |
4.3 | 2.9 | 11.1 | 2005 |
| N2118: å³èŸºå€åç §ã»ã ãŒãã»ãã³ãã£ã¯ã¹ | å³èŸºå€ã«ãããªãŒããŒããŒããããã³ããã«ãããªãœãŒã¹ã®æææš©ç§»å | 4.3 (partial) 4.6 |
2.9 | 12.0 | 2010 (partial) ã ãŒãã³ã³ã¹ãã©ã¯ã¿ãšä»£å
¥æŒç®åã®æé»å®çŸ©ã«å¯Ÿå¿ããŠããªãã 2015 |
| N1720: ã³ã³ãã€ã«æã¢ãµãŒã | ã³ã³ãã€ã«æã«æ¡ä»¶åŒãçã§ããããšã衚æãã | 4.3 | 2.9 | 11.1 | 2010 |
N2347: enumã®å
è¡å®£èš |
4.6 | 3.1 | 11.1 (partial) 14.0 |
2012 | |
| N2347: ã¹ã³ãŒããæã€åæå | 匷ãåä»ããšã¹ã³ãŒããæã€åæå | 4.4 | 2.9 | 11.1 (partial) 14.0 |
2012 |
| N2258: ãšã€ãªã¢ã¹ãã³ãã¬ãŒã | ãã³ãã¬ãŒãã«ãã£ãŠåã®å¥åãå®çŸ©ãã | 4.7 | 3.0 | 12.1 | 2013 |
| N2544: å ±çšäœã§ã¯ã©ã¹ãªããžã§ã¯ãããã€ããšãèš±å¯ | å ±çšäœã®ã¡ã³ã倿°ãšããŠãã¯ã©ã¹ãªããžã§ã¯ããæã€ | 4.6 | 3.1 | 14.0(Linuxç³»OSããã³Macã®ã¿ãWindowsã¯é察å¿) | 2015 |
| N2242: å¯å€åŒæ°ãã³ãã¬ãŒã | ä»»æã®æ°ã®ãã³ãã¬ãŒããã©ã¡ãŒã¿ãåãåããããã«ãã | 4.3 (partial) 4.4 |
2.9 | 12.1 | 2013 |
| N2930: ç¯å²foræ | é åãã³ã³ãããšãã£ãç¯å²ã衚ããªããžã§ã¯ãããç°¡æœã«èµ°æ»ãã | 4.6 | 3.0 | 13.0 | 2012 |
N2928: overrideãšfinal |
ã¡ã³ã颿°ã®ãªãŒããŒã©ã€ãæå®ãããã³æŽŸçã¯ã©ã¹ã§ã®ãªãŒããŒããŒããçŠæ¢ããæå® | 4.7 | 2.9 | 14.0 | 2005 (partial): overrideã®ã¿ãfinalã®ä»£ããã«sealedãååšããããã ãäž¡è
ãšããã¹ãã©ã¯ã¿ã«ã¯æå®ã§ããªãã2012 |
| N2761: 屿§æ§æ | [[attr]]æ§æã«ãããã¯ã©ã¹ã颿°ã倿°ã®å±æ§æå® |
4.8 | 3.3 | 12.1 | 2015 |
| N2439: ã¡ã³ã颿°ã®å·ŠèŸºå€ïŒå³èŸºå€ä¿®é£Ÿ | ãªããžã§ã¯ãã巊蟺å€ïŒå³èŸºå€ã®å Žåã®ã¿åŒã³åºãå¯èœã§ããããšã®æå® | 4.8.1 | 2.9 | 14.0 | 2015 |
| N2756: ééçã¡ã³ã倿°ã®åæå | ã¡ã³ã倿°ãã宣èšãšåæã«åæå€æå®ãã | 4.7 | 3.0 | 14.0 | 2013 |
| N2672: åæååãªã¹ã | æ³¢ã«ãã³ã«ããåæåããŠãŒã¶ãŒå®çŸ©ãããvector<int> v = {1, 2, 3};ãªã©ã |
4.4 | 3.1 | 14.0 | 2013 |
| N2672: äžæ§åæå | ã³ã³ã¹ãã©ã¯ã¿åŒã³åºããæ³¢ã«ãã³ã§è¡ãã T x { a, b, c }; |
4.4 | 3.1 | 13.0(partial) 14.0 |
2013 |
N3050: noexcept |
颿°ã®äŸå€æå®ãäŸå€ãæããå¯èœæ§ã®ããåŒãboolå€ãè¿ãæŒç®å | 4.6 | 3.0 | 13.0(partial) 14.0 |
2015 |
| N2634: ä»»æã®åŒã«ããSFINAE | ç¹å®ã®åŒãæå¹ãã©ããã§ããã®é¢æ°ããªãŒããŒããŒã解決ã«å«ãããã©ãããæ±ºå®ãã | 4.4 | 2.9 | 12.0 | 2015 Update 1 (partial) 2017 Update 7 |
| N2659: ã¹ã¬ããããŒã«ã«ã¹ãã¬ãŒãž | ã¹ã¬ããããšã«ç°ãªãéçèšæ¶åã«ä¿æããã倿° | 4.8 | 3.3 | 11.1 (partial) | 2010__declspec(thread)屿§ã§ã®éšåãµããŒã2015 |
N2660: ãããã¯ã¹ã³ãŒããæã€static倿°åæåã®ã¹ã¬ããã»ãŒãå |
颿°ããŒã«ã«ã§å®çŸ©ããstatic倿°ã®åæåããã¹ã¬ããã»ãŒãã«ãã |
4.3 | 2.9 | 11.0 (Linux/macOS) 14.0 |
2015 |
ååŠçç³»ã®C++11å®è£ ç¶æ³ããŒãžïŒ
- å šäœçãªå¯Ÿå¿ç¶æ³ïŒ C++0xCompilerSupport
- GCCïŒ C++11 Support in GCC
- libstdc++ : C++ 2011
- ClangïŒ C++98 and C++11 Support in Clang
- ICC : C++11 Features Supported by Intel® C++ Compiler
- Visual C++ (MSVC):
C++14èšèªæ©èœã®å®è£ ç¶æ³
| èšèªæ©èœ | 説æ | GCC | Clang | ICC | MSVC |
|---|---|---|---|---|---|
| N3472: 2鲿°ãªãã©ã« | 2鲿°ã衚ã0b or 0Bãã¬ãã£ãã¯ã¹ãä»ããæ°å€ãªãã©ã«ã®èšè¿°ãå¯èœãšãã |
4.3(GNU) 4.9 |
2.9 | 11.0 | 2015 |
| N3638: éåžžé¢æ°ã®æ»ãå€åæšè« | 颿°ã®æ»ãå€åãautoã«ããããšã§ãreturnæããæ»ãå€ã®åãæšè«ããã |
4.8(partial) 4.9 |
3.3(partial) 3.4 |
15.0 | 2015 |
| N3648: ã©ã ãåŒã®åæåãã£ãã㣠| ãã£ããã£ã«ä»£å ¥æ§æãå°å ¥ããäžã€ã®å€æ°ã«è€æ°ã®ãã£ããã£æ¹æ³ãæå®å¯èœã«ãã | 4.9 | 3.4 | 15.0 | 2015 |
| N3649: ãžã§ããªãã¯ã©ã ã | ã©ã ãåŒã®ãã©ã¡ãŒã¿ãautoã«ããããšã§ããžã§ããªãã¯ãªé¢æ°åŒã³åºãæŒç®åãæã€é¢æ°ãªããžã§ã¯ããçæãã |
4.9 | 3.4 | 16.0 | 2015 |
| N3651: 倿°ãã³ãã¬ãŒã | 倿°å®çŸ©æã®ãã³ãã¬ãŒãæå®ãå¯èœã«ããã | 5.1 | 3.4 | 16.0 | 2015 Update 2 |
N3652: constexpr颿°å
ã§ã®æ¡ä»¶åå²ãšã«ãŒãã®æãèš±å¯ |
ifæãswitchæã«ããæ¡ä»¶åå²ã®èš±å¯ãforæãwhileæãdo-whileæã«ããã«ãŒãã®èš±å¯ãvoidæ»ãå€åã®èš±å¯åæåã䌎ã倿°å®£èšã®èš±å¯ã 倿°æžãæãã®èš±å¯ã |
5.1 | 3.3(partial) 3.4 |
16.0 | 2017 |
| N3653: å®£èšæã®ã¡ã³ãåæåãæã€åã®éæäœåæåãèš±å¯ | äžæ§åæåãšåæååãªã¹ããçµã¿åãããéãäºéã«æ³¢ã«ãã³ãå¿ èŠãšãªã£ãŠãã仿§ãç·©åããæ³¢ã«ãã³ãçç¥ã§ããããã«ãã | 5.1 | 3.3 | 16.0 | 2017 |
N3760: [[deprecated]]屿§ |
éæšå¥šã®æ©èœã§ããããšã瀺ã屿§ã | 4.9 | 3.4 | 15.0 (Linux/Mac OS) |
2015 ãã以å㯠__declspec(deprecated)ã§ä»£æ¿å¯èœ |
| N3781: æ°å€ãªãã©ã«ã®æ¡åºåãæå | ã·ã³ã°ã«ã¯ã©ãŒããŒã·ã§ã³ã§æ°å€ãªãã©ã«ãæ¡åºåãããã | 4.9 | 3.4 | 16.0 | 2015 |
| N3778: ãµã€ãºä»ããã¢ãã±ãŒã·ã§ã³ | ãµã€ãºããšãdeleteæŒç®åã®ãªãŒããŒããŒããèš±å¯ããã |
5.1 | 3.4 | 16.0 | 2015 |
ååŠçç³»ã®C++14å®è£ ç¶æ³ããŒãžïŒ
- GCC: C++14 Support in GCC
- libstdc++: C++ 2014
- Clang: C++98, C++11, and C++14 Support in Clang
- Visual C++ (MSVC):
- ICC: C++14 Features Supported by Intel C++ Compiler
C++17èšèªæ©èœã®å®è£ ç¶æ³
| èšèªæ©èœ | 説æ | GCC | Clang | ICC | MSVC |
|---|---|---|---|---|---|
N3928: ã¡ãã»ãŒãžãªãã®static_assert |
ããã©ã«ãã®è¡šæã¡ãã»ãŒãžã䜿çšãã | 6 | 3.5 | 18.0 | 2017 |
| N4086: ãã©ã€ã°ã©ããåé€ | 5.1 | 3.5 | 19.1 | 2010 | |
N4051: ãã³ãã¬ãŒããã³ãã¬ãŒããã©ã¡ãŒã¿ã«typenameãèš±å¯ |
classããŒã¯ãŒããã䜿çšã§ããªãã£ãéšåã«ãtypenameãèš±å¯ |
5.0 | 3.5 | 17.0 | 2015 |
| N3922: åäžèŠçŽ ã®æ³¢ã«ãã³åæåãéé åãšãã | initializer_list<T>ã ã£ãã®ãTã«å€æŽ |
5 | 3.8 | 17.0 | 2015 |
| N4295: ç³ã¿èŸŒã¿åŒ | ãã©ã¡ãŒã¿ããã¯ã«å¯Ÿãã2é æŒç®ã®éç©åŠç | 6 | 3.6 | 19.0 | 2017 Update 5 |
| N4267: UTF-8æåãªãã©ã« | æååãªãã©ã«ã ãã§ãªããæåãªãã©ã«ã«ãUTF-8æå®ã§ããããã«ãã | 6 | 3.6 | 17.0 | 2015 |
| N4230: å ¥ãååå空éã®å®çŸ© | namespace A::B {}ã®ããã«ãå
¥ãåã®åå空éãç°¡åã«å®çŸ©ã§ããããã«ãã |
6 | 3.6 | 17.0 | 2015 Update 3 |
| N4266: åå空éãšåæåã«å±æ§ã®ä»å ãèš±å¯ | åå空éã®å®çŸ©ãšãåæåã®åèŠçŽ ã®å®çŸ©ã«ã屿§ãä»ããããããã«ãã | åå空éã¯4.0 åæåã¯6 |
3.6 | 17.0 | 2015 |
| N4268: å šãŠã®éåãã³ãã¬ãŒãåŒæ°ã®å®æ°åŒè©äŸ¡ãèš±å¯ | ãã€ã³ã¿ã®å®æ°åŒè©äŸ¡ãšããŠãé åãããã€ã³ã¿ãžã®å€æãã颿°ãã颿°ãã€ã³ã¿ãžã®å€æãªã©ãèš±å¯ | 6 | 3.6 | 19.1 | 2017 Update 5 |
P0001R1: éæšå¥šã ã£ãregisterããŒã¯ãŒããåé€ |
7 | 3.8 | 18.0 | 2017 Update 3 | |
P0002R1: éæšå¥šã ã£ãboolåãªããžã§ã¯ãã«å¯Ÿããã€ã³ã¯ãªã¡ã³ãã®ä»æ§ãåé€ |
7 | 3.8 | 18.0 | 2017 Update 3 | |
| P0012R1: äŸå€ä»æ§ãåã·ã¹ãã ã®äžéšã«ãã | 7 | 4 | 18.0 | 2017 Update 5 | |
P0061R1: ããªããã»ããµã§ã®æ¡ä»¶åŒ__has_include |
察象ã®ã€ã³ã¯ã«ãŒããã¡ã€ã«ãååšããããããªããã»ã¹æã«å€å®ãã | 5.0 | 3.0 | 18.0 | 2017 Update 3 |
| P0136R1: ç¶æ¿ã³ã³ã¹ãã©ã¯ã¿ã®æ°ä»æ§ | ããã©ã«ãåŒæ°ãåŒãç¶ãããã«ãã | 7 | 3.9 | No | 2017 Update 7 |
P0188R1: [[fallthrough]]屿§ |
caseç¯ã§breakãreturnãæžããªãã£ãå Žåã«ããããæå³ãããã©ãŒã«ã¹ã«ãŒã§ããããšãã³ã³ãã€ã©ã«äŒãã屿§ |
7 | 3.9 | 18.0 | 2017 |
P0189R1: [[nodiscard]]屿§ |
颿°ã®æ»ãå€ãç¡èŠããŠã¯ãªããªãããšããŠãŒã¶ãŒã«äŒãã屿§ | 4.8ããã¯[[gnu::warn_unused_result]]ã䜿çšããããš7ãããµããŒã |
3.9 | 18.0 | 2017 Update 3 |
P0212R1: [[maybe_unused]]屿§ |
䜿çšããªãå¯èœæ§ããã倿°ã§ããããšãã³ã³ãã€ã©ã«äŒãã屿§ | 4.8ããã¯[[gnu::unused]]ã䜿çšããããš7ãããµããŒã |
3.9 | 18.0 | 2017 Update 3 |
| P0017R1: åºåºã¯ã©ã¹ã®ã¡ã³ã倿°ãéæäœåæåããããã®æ³¢ã«ãã³ãçç¥ã§ããããã«ãã | åºåºã¯ã©ã¹ã®ã¡ã³ããéæäœåæåããããã«ãderived d {{42}};ã®ä»£ããã«derived d {42};ãšæžããããã«ãã |
7 | 3.9 | 19.1 | 2017 Update 7 |
P0170R1: ã©ã ãåŒãconstexprãšããŠäœ¿çšã§ããããã«ãã |
ã©ã ãåŒã®é¢æ°ãªããžã§ã¯ãã宿°åŒã®æèã§äœ¿çšãããå Žåã«ããããã³ã³ãã€ã«æã«è©äŸ¡ãããããã«ãã | 7 | 5 | 19.0 | 2017 Update 3 |
| P0184R0: ç¯å²foræã®ã€ãã¬ãŒã¿åãäžèŽããªãããšãèš±å¯ | begin()ãšend()ãç°ãªãã€ãã¬ãŒã¿åãè¿ããããã«ããããšã§ãçµç«¯ã€ãã¬ãŒã¿ãå®çŸ©ãããããã |
6 | 3.9 | 18.0 | 2017 |
P0018R3: ã©ã ãåŒã§ã®*thisã®ã³ããŒãã£ãã㣠|
ãã£ããã£ãªã¹ãã«*thisãæå®ããããšã§ã*thisãã³ããŒãã£ããã£ãã |
7 | 3.9 | 19.0 | 2017 Update 3 |
P0138R2: enum class倿°ã®åæå€ãšããŠæŽæ°ãæå®ããéã®èŠåãèª¿æŽ |
ãã£ã¹ãã䜿çšããããšãªãæŽæ°ãåæå€ãšããŠäœ¿çšããE e{0};ã®ãããªåæåãèš±å¯ |
7 | 3.9 | 19.0 | 2017 Update 3 |
| P0245R1: 16鲿µ®åå°æ°ç¹æ°ãªãã©ã« | hexfloatãããã¥ã¬ãŒã¿ãprintf()ã®16鲿°åºåã«åãããŠãæµ®åå°æ°ç¹æ°ã®ãªãã©ã«ã16鲿°è¡šèšã§ããããã«ãã |
3.0 | 3.0 | 18.0 | 2017 Update 5 |
| P0028R4: 屿§ã®åå空éæå®ã«ç¹°ãè¿ãããªãã | [[using CC: opt(1), debug]]ã®ããã«å±æ§ã®åå空é宣èšããŸãšããŠè¡ã |
7 | 3.9 | 18.0 | 2017 Update 3 |
| P0035R4: ã¢ã©ã€ã¡ã³ãæå®ãããããŒã¿ã®åçã¡ã¢ãªç¢ºä¿ | operator newãšoperator deleteã§ã¢ã©ã€ã¡ã³ãå€ãååŸã§ããããã«ãã |
7 | 4 | 19.0 | 2017 Update 5 |
| P0091R3: ã¯ã©ã¹ãã³ãã¬ãŒãã®ãã³ãã¬ãŒãåŒæ°æšè« | ã³ã³ã¹ãã©ã¯ã¿ã®åŒæ°ããã¯ã©ã¹ã®ãã³ãã¬ãŒãåŒæ°ãæšè«ã§ããããã«ãã | 7 | 5 | 19.1 | 2017 Update 7 |
P0127R2: éåãã³ãã¬ãŒãåŒæ°ã®autoå®£èš |
template <typename T, T x>ãšããåé·ãªã³ãŒããtemplate <auto x>ã®ããã«ããŠåããããããã«ããX<3>; X<true>; X<'a'>ã®ããã«å®æ°ãç°¡æœã«æž¡ããããã«ãã |
7 | 4 | 19.1 | 2017 Update 7 |
| P0135R1: å€ã®ã³ããŒçç¥ãä¿èšŒ | äžæãªããžã§ã¯ããã³ããŒããéã«ãåçŽãªå€ãæã€ã¯ã©ã¹ã§ããã°ã³ããŒãçç¥ãããããšãä¿èšŒãã | 7 | 4 | 19.1 | 2017 Update 6 |
| P0145R3: å³å¯ãªåŒã®è©äŸ¡é | åŒã®é
ãè©äŸ¡ãããé åºãå³å¯ã«èŠå®ãããb = a;ã®åŒãå³ããé çª(a, bã®é )ã«è©äŸ¡ããã |
7 | 4 | 19.1 | 2017 Update 7 |
| P0283R2: äžæãªå±æ§ãç¡èŠãã | å®è£ ãç¥ããªãåå空éã®å±æ§ã¯ç¡èŠãã | 4.8 | 3.0 | 18.0 | 2015 |
| P0292R2: constexpr ifæ | if constexpr(cond)ãšããããšã§ããã®ifæã¯ã³ã³ãã€ã«æã«åŠçããã |
7 | 3.9 | 19.0 | 2017 Update 3 |
| P0386R2: ã€ã³ã©ã€ã³å€æ° | ã€ã³ã©ã€ã³æå®ã颿°ã ãã§ãªã倿°ã«ãæå®ã§ããããã«ãã | 7 | 3.9 | 19.0 | 2017 Update 5 |
| P0217R3: æ§é åæçž | ã¿ãã«ããŠãŒã¶ãŒå®çŸ©åãåè§£ããŠåãåããããã«ããtuple<int, string> f(); const auto [a, b] = f(); // aã¯intã®å€ãbã¯stringã®å€ |
7 | 4 | 18.0 | 2017 Update 3 |
| P0305R1: ifæãšswitchæã®æ¡ä»¶åŒãšåæåãåé¢ | if (init; condition)ã®ããã«åæåãšæ¡ä»¶åŒãåããŠèšè¿°ã§ããããã«ãã |
7 | 3.9 | 18.0 | 2017 Update 3 |
| P0137R1: åç §ã¡ã³ãããã€ã¯ã©ã¹ã®çœ®ãæã | åç
§åã¡ã³ããconstã¡ã³ã倿°ãå«ãã¯ã©ã¹ã«ã€ããŠãããŸã§æªå®çŸ©åäœãšãããŠããé
眮newã«ãããªããžã§ã¯ãã®çœ®ãæããæ¡ä»¶ä»ãã§å¯èœãšãã |
7 | 6.0 | No | 2017 Update 7 |
| P0003R5: éæšå¥šã ã£ãäŸå€ä»æ§ãåé€ | noexceptãå
¥ã£ãããšã«ãã£ãŠéæšå¥šã«ãªã£ãthrowããŒã¯ãŒãã«ããäŸå€ä»æ§ãåé€ |
7 | 4 | 19.0 | 2017 Update 5 |
| P0195R2: using宣èšã§ã®ããã¯å±é | ãã©ã¡ãŒã¿ããã¯ã®åãåºåºã¯ã©ã¹ãšããŠæå®ããå Žåã«ãusing宣èšã«åºåºã¯ã©ã¹ã®ãã©ã¡ãŒã¿ããã¯ãæå®ã§ããããã«ãã |
7 | 4 | 19.0 | 2017 Update 7 |
| P0512R0: ã¯ã©ã¹ãã³ãã¬ãŒãåŒæ°ã®æšè«ä»æ§ãèª¿æŽ | 8 | 5.0 | - | 2017 Update 7 | |
| P0490R0: Committee Draftã«å¯ŸããNational Body Commentãžã®å¯Ÿå¿ | - | - | - | - | |
| P0522R0: ãã³ãã¬ãŒããã³ãã¬ãŒãåŒæ°ã®ãããã³ã°ã«ãããŠãäºææ§ã®ãããã³ãã¬ãŒããé€å€ | 7 | 4 (partial) 19 |
19.1 | 2017 Update 5 |
ååŠçç³»ã®C++17å®è£ ç¶æ³ããŒãžïŒ
- GCC: C++17 Support in GCC
- Clang: C++ Support in Clang
- libc++ : libc++ C++17 Status
- Visual C++ (MSVC):
- ICC: C++17 Features Supported by Intel C++ Compiler
C++20èšèªæ©èœã®å®è£ ç¶æ³
| èšèªæ©èœ | 説æ | GCC | Clang | ICC | MSVC |
|---|---|---|---|---|---|
| P0683R1: ããããã£ãŒã«ãã®ã¡ã³ã倿°åæå | ããããã£ãŒã«ãã¡ã³ã倿°ã®ããã©ã«ãå€ãèšå®ããæ§æã远å ãã | 8 | 6.0 | 2021.4 | 2019 Update 5 |
P0409R2: ã©ã ãåŒã®ãã£ããã£ãšããŠ[=, this]ãèš±å¯ãã |
ããã©ã«ãã³ããŒãã£ããã£ãšthisãã€ã³ã¿ã®ã³ããŒãã£ããã£ãäž¡æ¹æå®ã§ããããã«ãã |
8 | 6.0 | 2021.4 | 2019 Update 2 |
P0806R2: [=]ã«ããthisã®æé»ã®ãã£ããã£ãéæšå¥šå |
ã³ããŒã®ããã©ã«ããã£ããã£ã§ã¯ãthisãã€ã³ã¿ããã£ããã£ãããªããã |
9 | - | No | 2019 Update 2 |
| P0428R2: ãžã§ããªãã¯ã©ã ãã®ãã³ãã¬ãŒãæ§æ | ãžã§ããªãã¯ã©ã ãã§ãã³ãã¬ãŒããã©ã¡ãŒã¿ãå®çŸ©ã§ããããã«ãã | 8 | 9.0 | 2021.4 | 2019 Update 2 |
P0704R1: const修食ãããã¡ã³ããã€ã³ã¿ã®å¶éãä¿®æ£ |
.*æŒç®åã§ã®å·ŠèŸºå€ã®constã¡ã³ã颿°åŒã³åºããèš±å¯ãã |
8 | 6.0 | 2021.4 | 2015 |
| P0306R4: å¯å€åŒæ°ã空ã§ãªãå Žåã®ããŒã¯ã³çœ®æ | ããªããã»ããµã®çœ®æã§å¯å€åŒæ°ã空ã®å Žåã«äœèšãªã«ã³ããä»ããŠããŸãåé¡ã«å¯ŸåŠ | 8 (partial, #__VA_OPT__ã«ããæåååãæªãµããŒã)10 (partial, placemarker token ã®ãã³ããªã³ã°å€æŽãªã) 12 |
6.0 9.0 (p1042) |
2021.4 | 2019 Update 5 |
| P0329R4: æç€ºä»ãåæå | æ³¢ã«ãã³ã«ããéæäœåæåã§ã¡ã³ãåãæå®ããŠåæåã§ããããã«ãã | 8 | 6.0 (partial) 10 |
2021.4 | 2019 Update 1 |
| P0734R0: ã³ã³ã»ãã | ãã³ãã¬ãŒããã©ã¡ãŒã¿ã«å¯Ÿããå¶çŽãè¡ã | 10 | 10 | 2021.6 | 2019 Update 3 |
| P0614R1: åæååŒããšããªãç¯å²foræ | ç¯å²foræã¹ã³ãŒãã§äœ¿çšãã倿°ã®åæåã®ããã®æ§æã远å | 9 | 8.0 | 2021.7 | 2019 Update 5 |
| P0588R1: æé»ã®ã©ã ããã£ããã£ãç°¡ç¥å | ã©ã ãåŒã®ãã£ããã£ã«é¢ãã仿§æŽç | 8 | No | 2021.4 | 2019 Update 4 |
| P0846R0: 颿°ãã³ãã¬ãŒãã«æç€ºçã«åæå®ããå Žåã«ADLã§èŠã€ãããªãåé¡ãä¿®æ£ | åå空éå ã®é¢æ°ãã³ãã¬ãŒãããã³ãã¬ãŒãåŒæ°æå®ãã€é修食ã»ADLã§æ£ããåŒã³åºããããä¿®æ£ | 9 | 9.0 | 2021.4 | 2019 Update 1 |
P0641R2: ããã©ã«ãã®ã³ããŒã³ã³ã¹ãã©ã¯ã¿ãšéconstãªã³ã³ã¹ãã©ã¯ã¿ãè¡çªããåé¡ãä¿®æ£ |
éconstãªãªããžã§ã¯ãããšãã³ã³ã¹ãã©ã¯ã¿ãå®çŸ©ãããšããã®ã¯ã©ã¹ãã©ããããã¯ã©ã¹ã®ã³ããŒã³ã³ã¹ãã©ã¯ã¿ãäžé©æ Œã«ãªã£ãŠããŸãåé¡ãä¿®æ£ |
9 | 8.0 | 2021.4 | 2015 |
| P0859R0: è©äŸ¡ãããªãæèã§ã®å®æ°åŒè©äŸ¡ã«ãã£ãŠç¹æ®ã¡ã³ã颿°ãã€ã³ã¹ã¿ã³ã¹åãããããšãèŠå® | sizeofãdecltypeãªã©ã®è©äŸ¡ãããªãæèã«ãããŠå®æ°åŒè©äŸ¡ãè¡ã£ãå Žåã«ãã ãŒãã³ã³ã¹ãã©ã¯ã¿ã®ãããªç¹æ®ã¡ã³ã颿°ãå®çŸ©ãããããšãèŠå® |
9 | 8 | No | 2019 Update 7 (partial) 2022 Update 1 |
P0515R3: <=>/==ã«ããæ¯èŒæŒç®åã®èªåå®çŸ© |
äžæ¹æ¯èŒæŒç®åã«ãã£ãŠæ¯èŒæŒç®åã®èªåçæãè¡ãããã«ãã | 10 | 8.0 (partial) 10 |
2021.4 | 2019 |
| P0692R1: ç¹æ®åã®ã¢ã¯ã»ã¹ãã§ã㯠| Yes | 14 | 2021.4 | 2019 Update 6 | |
| P0624R2: ç¶æ ãæããªãã©ã ãåŒããããã©ã«ãæ§ç¯å¯èœãä»£å ¥å¯èœãšãã | ãã£ããã£ããŠããªãã©ã ãåŒãããã©ã«ãæ§ç¯ã»ä»£å ¥å¯èœã«ãã | 9 | 8.0 | 2021.4 | 2019 Update 2 |
| P0767R1: PODãéæšå¥šå | PODãšããçšèªãéæšå¥šåãã | 10.1 | 21 | 2021.4 | 2019 Update 5 |
| P0315R4: è©äŸ¡ãããªãæèã§ã®ã©ã ãåŒ | è©äŸ¡ãããªãæèã§ãã©ã ãåŒãæžãããšãã§ããããã«ãã | 9 | 17 | 2024.0 | 2019 Update 8 |
| P0840R2: 空ãªããžã§ã¯ããèšèªãµããŒã | [[no_unique_address]]屿§ãå°å
¥ãã空ã®åã®ãªããžã§ã¯ããã»ãã®ãªããžã§ã¯ããšå
±æããæé©åãèš±å¯ãã |
9 | 9.0 | 2021.4 | 2019 Update 9 â 1 |
| P0962R1: ç¯å²foræãã«ã¹ã¿ãã€ãŒãŒã·ã§ã³ãã€ã³ããèŠã€ããã«ãŒã«ãç·©å | begin()/end()ã¡ã³ã颿°ã®ã©ã¡ãããèŠã€ãããªãã£ãå Žåã«éã¡ã³ã颿°ã®begin()/end()ãæ¢ãã«ãã |
8 | 8 | 2021.4 | 2019 Update 5 |
| P0969R0: friendæå®ããã颿°å ããæ§é åæçžã䜿çšããŠéå ¬éã¡ã³ã倿°ã«ã¢ã¯ã»ã¹ããããšãèš±å¯ | æ§é åæçžã®ä»æ§ãšããŠå ¬éã¡ã³ã倿°ã®ã¿ãåãåºããããã«ãªã£ãŠããããfriendæå®ããã颿°ããã¯éå ¬éã¡ã³ã倿°ã«ãã¢ã¯ã»ã¹ã§ããããã«ãã | 8 | 8.0 | 2021.4 | 2019 |
| P0961R1: æ§é åæçžãã«ã¹ã¿ãã€ãŒãŒã·ã§ã³ãã€ã³ããèŠã€ããã«ãŒã«ãç·©å | éãã³ãã¬ãŒãã®get()ã¡ã³ã颿°ãèŠã€ãã£ãå Žåã¯ãéã¡ã³ã颿°ã®get()ãæ¢ãã«ãã |
8 | 8.0 | 2021.4 | 2019 |
P0634R3: åã®æèã§typenameã®çç¥ãèš±å¯ |
åããçŸããªãæèã§ã¯ãäŸååã解決ããããã®typenameããŒã¯ãŒããçç¥ã§ããããã«ãã |
9 | 16 | 2023.1 | 2019 Update 9 |
| P0780R2: ã©ã ãåŒã®åæåãã£ããã£ã§ã®ããã¯å±éãèš±å¯ | [...args = std::move(args)]ã®ãããªãã£ããã£ãèš±å¯ |
9 10 |
9.0 | 2021.7 | 2019 Update 2 |
P0479R5: 確çãé«ãåå²ãšäœãåå²ãäŒãã屿§ [[likely]], [[unlikely]] |
æ¡ä»¶åå²ã®æé©åãã³ããäžãã屿§ | 9 (partial, switch æã®ã¿å¯èœ)10 |
12.0 | 2021.7 | 2019 Update 6 |
| P0929R2: æœè±¡åã®ãã§ã㯠| 颿°ã®å®£è𿮵éã§ã¯ããã©ã¡ãŒã¿ããã³æ»ãå€åãæœè±¡åãã©ããããã§ãã¯ããªãããã«ãã | 11 | - | No | 2019 Update 5 |
| P0732R2: éåãã³ãã¬ãŒããã©ã¡ãŒã¿ãšããŠã¯ã©ã¹åãèš±å¯ãã | 宿°åŒãšããŠäœ¿çšã§ããåãåºãéåãã³ãã¬ãŒããã©ã¡ãŒã¿ãšããŠäœ¿çšã§ããããã«ãã | 9 | 12 | 2022.2 Partial | 2019 Update 6 |
P0722R3: å¯å€é·ããŒã¿ãæ±ãã¯ã©ã¹ã®å¹ççãªdelete |
ã¯ã©ã¹ã®deleteæŒç®åãåŒã³åºãããåã«ãã¹ãã©ã¯ã¿ãåŒã°ããªãããã«ãããªãã·ã§ã³ã远å |
9 | 6.0 | 2023.0 | 2019 Update 7 |
| P1064R0: 宿°åŒããã®ä»®æ³é¢æ°ã®åŒã³åºããèš±å¯ | ä»®æ³é¢æ°ã«constexprãä»ããããªãå¶éãè§£é€ |
9 | 9.0 | 2021.4 | 2019 Update 9 |
P1327R1: 宿°åŒã§ã®dynamic_castã倿
çãªtypeidãèš±å¯ |
宿°åŒã§ã®åç倿 ãèš±å¯ | 10 | 9.0 | 2021.4 | 2019 Update 9 |
| P1002R1: constexpr颿°å ã§ã®try-catchãããã¯ãèš±å¯ | constexpr颿°å ã§try-catchãããã¯ãæžããããã«ãã | 9 | 8.0 | 2023.1 | 2019 Update 5 |
P1073R3: åžžã«å®æ°åŒè©äŸ¡ããconsteval |
constevalããŒã¯ãŒãã远å ããåžžã«å®æ°åŒè©äŸ¡ãããããæå®ã§ããããã«ãã |
11 | 15 | 2021.4 | 2019 Update 10 |
| P1330R0: 宿°åŒå ã§ã®å ±çšäœã®ã¢ã¯ãã£ãã¡ã³ãã®å€æŽãèš±å¯ | å ±çšäœã¡ã³ãã®æžãæãã宿°åŒå ã§è¡ããããã«ãã | 9 | 9.0 | 2021.4 | 2017 |
| P1008R1: ãŠãŒã¶ãŒå®£èšããã³ã³ã¹ãã©ã¯ã¿ãæã€ã¯ã©ã¹ã®éæäœåæåãçŠæ¢ | ã³ã³ã¹ãã©ã¯ã¿ãdeleteïŒdefault宣èšãããŠããã¯ã©ã¹ããéæäœåæåã«ãã£ãŠã³ã³ã¹ãã©ã¯ã¿åŒã³åºããåé¿ããŠæ§ç¯ã§ããŠããŸã£ãŠããææ³ãçŠæ¢ |
9 | 8.0 | 2021.4 | 2019 |
P0892R2: 颿°ãæ¡ä»¶ä»ãã§explicitã«ããæ§æã远å |
explicit(true)ã®ããã«explicitã«ççå€ãã©ã¡ãŒã¿ãæå®ã§ããããã«ãã |
9 | 9.0 | 2021.4 | 2019 Update 2 |
| P1236R1: 笊å·ä»ãæŽæ°åã2ã®è£æ°è¡šçŸã§ããããšãèŠå® | 笊å·ä»ãæŽæ°åã®ããã衚çŸã2ã®è£æ°ã«èŠå®ãã | 9 | 9.0 | 2023.0 | 2022 Update 14 |
P0482R6: UTF-8ãšã³ã³ãŒãã£ã³ã°ãããæåã®åãšããŠchar8_tã远å |
UTF-8ãšã³ã³ãŒããããæåãã©ããã§ãªãŒããŒããŒãã»ç¹æ®åãã§ããããã«ãã | 9 | 7 (-fchar8_tãªãã·ã§ã³ãå¿
èŠ)8 ( -std=c++20ã§æå¹å) |
2021.4 | 2019 Update 2 |
| P1094R2: å ¥ãååå空éå®çŸ©ã§ã®ã€ã³ã©ã€ã³åå空é | namespace ns1::inline ns2::ns3 {}ã®ããã«ãå
¥ãååå空éãå®çŸ©ããåŒã«ã€ã³ã©ã€ã³åå空éã®æå®ãå«ããããããã«ãã |
9 | 8.0 | 2021.4 | 2019 Update 7 |
| P1091R3: æ§é åæçžãæ¡åŒµããŠéåžžã®å€æ°å®£èšã®ããã«äœ¿çšã§ããããã«ãã | èšæ¶åæå®åãšããŠstaticãšthread_localã®æå®ãèš±å¯ |
10 | 8.0 (partial) 16 |
2021.4 | 2019 Update 4 |
| P1381R1: æ§é åæçžãã倿°ã®åç §ãã£ããã£ãèš±å¯ | æ§é åæçžããã倿°ã¯ç¹æ®ãªæ±ãã®ããã©ã ãåŒã§åç §ãã£ããã£ã§ããªãèŠå®ãšãªã£ãŠããããããèš±å¯ãã | 8 | 8.0 (partial) 16 |
2021.4 | 2017 Update 3 |
| P0960R3: äžžã«ãã³ã®å€ãªã¹ãããã®éæäœåæåãèš±å¯ | T x{1, 2, 3};ãšåæ§ã«T x(1, 2, 3);ã§ãéæäœåæåã§ããããã«ãã |
10 | 16 | 2021.4 | 2019 Update 8 |
P1009R2: newåŒã§ã®é
åèŠçŽ æ°ã®æšè« |
double* p = new double[]{1,2,3};ãèš±å¯ |
11 | 9 | 2021.4 | 2019 Update 7 |
P1041R4: char16_tãšchar32_tã®æåã»æååãªãã©ã«ããæåã³ãŒãUTF-16/32ã«èŠå® |
__STDC_UTF_16__ã__STDC_UTF_32__ã®å®çŸ©ã«é¢ä¿ãªããchar16_tãchar32_tã®ãªãã©ã«ãUTF-16/32æåã³ãŒãã«èŠå®ãã |
10 | Yes | 2023.0 | 2015 |
| P1103R3: ã¢ãžã¥ãŒã« | ããããã¡ã€ã«ã»ãœãŒã¹ãã¡ã€ã«ãã€ã³ã¯ã«ãŒãã«å€ããä»çµã¿ãšããŠã¢ãžã¥ãŒã«ãå°å ¥ãã | 11 (-fmodules-tsãå¿
èŠ) |
8.0 partial (-fmodules, -fmodules-tsãå¿
èŠ)15 |
2023.1 (partial) | 2019 Update 8 |
| P0912R5: ã³ã«ãŒãã³ | 颿°å®è¡ãäžæã»åéããä»çµã¿ãšããŠã³ã«ãŒãã³ãå°å ¥ãã | 10 (-fcoroutinesãå¿
èŠ)11 ( -std=c++20ã§æå¹å) |
8.0 (partial) | 2021.4 | 2019 Update 8 |
| P1161R3: æ·»åæŒç®åå ã§ã®ã«ã³ãæŒç®åã®äœ¿çšãéæšå¥šå | ar[i, j]ãéæšå¥šåãar[(i, j)]ã¯OK |
10 | 9.0 | 2021.6 | 2019 Update 5 |
| P1331R2: constexpr颿°å ã§ã®ããªãã¢ã«ãªããã©ã«ãåæåãèš±å¯ | constexpr颿°å ã§ã®ããã©ã«ãåæåãèš±å¯ããæªåæåå€ãèªãããšã®ã¿çŠæ¢ãã | 10 | 10.0 | 2022.3 | 2019 Update 7 |
| P0848R3: æ¡ä»¶ä»ãã§ç¹æ®ã¡ã³ã颿°ãããªãã¢ã«ã«å®çŸ©ããããã« | å¶çŽã«ãã£ãŠããªãã¢ã«ãªç¹æ®ã¡ã³ã颿°ãšéããªãã¢ã«ãªç¹æ®ã¡ã³ã颿°ããªãŒããŒããŒãã§ããããã«ãã | 10 | 16 (partial) 19 |
2022.3 | 2019 Update 8 |
P1301R4: [[nodiscard]]屿§ã«çç±ãšãªãæååãä»å ã§ããããã«ãã |
颿°ã®æ»ãå€ãç¡èŠããŠã¯ãªããªãçç±ã颿°å®£èšã«æãããèŠåã¡ãã»ãŒãžã«åœ¹ç«ãŠã | 10 | 9.0 | 2021.6 | 2019 Update 5 |
| P1099R5: ã¹ã³ãŒãä»ãåæåã®usingå®£èš | using enum EnumType;ãããã¯using EnumType::enumeratorãšããããšã§ãåæå€ã®ã¹ã³ãŒãæå®ãçç¥ã§ããããã«ãã |
11 | 13 | 2023.0 | 2019 Update 4 |
| P1816R0: éæäœã¯ã©ã¹ãã³ãã¬ãŒãã®ãã³ãã¬ãŒãåŒæ°æšè« | ã¯ã©ã¹ãã³ãã¬ãŒãã®ãã³ãã¬ãŒãåŒæ°æšè«ã¯ã³ã³ã¹ãã©ã¯ã¿åŒæ°ããæšè«ãããããéæäœåæåãããæšè«ã§ããããã«ãã | 10 | 17 | 2024.0 | 2019 Update 7 |
| P1668R1: constexpr颿°å ã§æªè©äŸ¡ã®ã€ã³ã©ã€ã³ã¢ã»ã³ããªãèš±å¯ããããšã«ããçµã¿èŸŒã¿é¢æ°ã®constexpræå¹å | ã³ã³ãã€ã«æã«è©äŸ¡ãããªãå Žåã«constexpr颿°ã«asmå®çŸ©ãå«ããããšãèš±å¯ | 10 | 10.0 | 2022.3 | 2019 Update 9 |
| P0388R4: èŠçŽ æ°äžæã®é åãžã®å€æãèš±å¯ | èŠçŽ æ°ã倿ããŠããé åãããèŠçŽ æ°ãäžæã®é åãžã®å€æãèš±å¯ | 10 | 14 | 2021.6 | 2019 Update 7 |
P1143R2: ã³ã³ãã€ã«æåæåã匷å¶ããconstinitããŒã¯ãŒãã远å |
åæåã®ã¿ã³ã³ãã€ã«æã«ããããããå Žåã«äœ¿çšãã | 10 | 10.0 | 2022.3 | 2019 Update 10 |
P1152R4: ã»ãšãã©ã®volatileãéæšå¥šå |
volatileã®æçšãªæ©èœã®ã¿ãæ®ãã广ãçãããããŸãã¯å£ããŠããæ©èœãéæšå¥šåãã |
10 | 10.0 | 2021.6 | 2019 Update 7 |
| P1814R0: ãšã€ãªã¢ã¹ãã³ãã¬ãŒãçµç±ã§ã®ã¯ã©ã¹ãã³ãã¬ãŒãã®ãã³ãã¬ãŒãåŒæ°æšè« | ãšã€ãªã¢ã¹ãã³ãã¬ãŒãããã¯ã©ã¹ãã³ãã¬ãŒãã®ãã³ãã¬ãŒãåŒæ°ãæšè«ã§ããããã«ãã | 10 | 19 (partial) | No | 2019 Update 7 |
P0784R7: å¯å€ãµã€ãºããã€ã³ã³ããã®constexprå |
constexprèšæ¶åããã€ã¡ã¢ãªã¢ãã±ãŒã¿ã®ååšãèæ
®ããããšã§ãå¯å€ãµã€ãºããã€ã³ã³ãããã³ã³ãã€ã«æã«äœ¿çšã§ããããã«ãã |
10 | 10.0 | 2021.6 | 2019 Update 9 |
P1957R2: ãã€ã³ã¿ããboolãžã®å€æãçž®å°å€æãšãã |
ãã€ã³ã¿ããboolå€ãžã®å€æãçž®å°å€æãšèŠå®ããããšã§ãæå³ããªã倿ã鲿¢ãã |
10 | 11.0 | - | 2019 Update 7 |
- ^ äžæãªå±æ§ãšããŠç¡èŠãããªããªã£ãã ãã§æåŸ
ãã广ã¯åŸãããªããå®å
šã«å®è£
ããããŸã§ã¯ã代ããã«
[[msvc::no_unique_address]]ã䜿çšã§ããã
ååŠçç³»ã®C++20å®è£ ç¶æ³ããŒãžïŒ
- GCC: C++20 Support in GCC
- Clang: C++ Support in Clang
- libstdc++: C++ 2020 Implementation Status
- libc++: libc++ C++20 Status
- Visual C++ (MSVC):
- ICC: C++20 Features Supported by Intel® C++ Compiler
C++23èšèªæ©èœã®å®è£ ç¶æ³
| èšèªæ©èœ | 説æ | GCC | Clang | ICX | MSVC |
|---|---|---|---|---|---|
P0330R8: (笊å·ä»ã)size_tãªãã©ã«ã®ããã®ãµãã£ãã¯ã¹ |
42z/42Zãšããããšã§size_tã«å¯Ÿå¿ãã笊å·ä»ãæŽæ°åã®ãªãã©ã«ãšãã |
11 | 13 | 2022.2 | 2022 Update 13 |
| P2290R3: ãšã¹ã±ãŒãã·ãŒã±ã³ã¹ã®åºåã | ãšã¹ã±ãŒãã·ãŒã±ã³ã¹ã®ç¯å²ãæç¢ºã«ããæ§æã远å ãã | 13 | 15 | 2023.2 | 2026 |
| P2266R3: æé»çãªã ãŒããç°¡ç¥å | åç
§ãè¿ã颿°ã®returnæã§æé»çã«ã ãŒããããªãåé¡ãä¿®æ£ |
13 | 13 | 2022.2 | 2026 |
P0849R8: auto(x)ã«ããäžæãªããžã§ã¯ããžã®å€æ |
auto(x)/auto{x}ã§ãåŒã®å€ãã³ããŒããäžæãªããžã§ã¯ããåŸã |
12 | 15 | 2022.2 | 2026 |
| P1787R6: ã¹ã³ãŒããšååæ¢çŽ¢ã®ä»æ§æŽç | è€éã§äžå®å šã«ãªã£ãŠããã¹ã³ãŒããšååæ¢çŽ¢ã®ä»æ§ãæŽçããäžéšã®åé¡ã解決ãã | No | - | - | Yes |
| P2615R1: ç¡æå³ãªexport宣èšãçŠæ¢ãã | ããã€ãã®äžå¿ èŠãªå®£èšã«å¯Ÿããã¢ãžã¥ãŒã«exportãçŠæ¢ãã | 15 | 17 | - | 2026 |
| P2360R0: åæåæã§ã®åã®å¥å宣èšãèš±å¯ | for (using T = int; T e : v) {}ãèš±å¯ |
12 | 14 | 2022.2 | 2026 |
| P2718R0: ç¯å²foræãç¯å²åæååå ã§çããäžæãªããžã§ã¯ããå»¶åœããããšãèŠå® | ç¯å²åæååå ã§çããäžæãªããžã§ã¯ãã¯ç¯å²foræã®çµãããŸã§å»¶åœããã | 15 | 20 | - | - |
| P2324R2: è€åæã®æ«å°Ÿãžã®ã©ãã«ãèš±å¯ | Cäºæã®ãããè€åæã®æ«å°Ÿã§ã®gotoæã®ã©ãã«ãèš±å¯ãã | 13 | 16 | 2023.2 | No |
P0847R7: ã¡ã³ã颿°ã®ç¬¬1ãã©ã¡ãŒã¿ãšããŠ*thisã宣èšã§ããããã«ãã |
èªèº«ã®ãªããžã§ã¯ãããã©ã¡ãŒã¿ãšããŠåãåããããã«ããconstã»å€ã«ããŽãªããšã«éè€ããŠãããªãŒããŒããŒãã1ã€ã«ãŸãšããããããã«ãã |
14 | 18 | No | 2022 Update 2 (partial) 2022 Update 13 |
| P1847R4: ã¢ã¯ã»ã¹å¶åŸ¡ã®ç°ãªãã¡ã³ã倿°ã®ã¬ã€ã¢ãŠãã宣èšé ã«èŠå® | ã¢ã¯ã»ã¹å¶åŸ¡ã®ç°ãªãã¡ã³ã倿°ã®ã¬ã€ã¢ãŠãã¯äžŠã³æ¿ããèš±å¯ãããŠããã宣èšé ã«èŠå®ãã | Yes | Yes | - | 2022 |
| P2128R6: æ·»åæŒç®åã®å€æ¬¡å ãµããŒã | operator[](int x, int y, int z)ã®ããã«æ·»åæŒç®åã®ãªãŒããŒããŒãã§è€æ°ã®ãã©ã¡ãŒã¿ããšãããšãèš±å¯ |
12 | 15 | 2022.2 | 2022 Update 12 |
P1169R4: thisãã€ã³ã¿ããã€å¿
èŠã®ãªãæŒç®åãstaticãšããŠå®£èšã§ããããã«ãã |
ç¶æ
ããããªãããã€ãã®æŒç®åãstaticãšããŠå®£èšã§ããããã«ãã |
13 | 16 | 2023.2 | 2022 Update 14 |
| P2201R1: ç°ãªãæåãšã³ã³ãŒãã£ã³ã°ããã€æååãªãã©ã«ã®é£çµãäžé©æ Œãšãã | auto a = u8"" L"";ã®ãããªç°ãªãæåãšã³ã³ãŒãã£ã³ã°å士ã§ã®æååãªãã©ã«ã®é£çµãçŠæ¢ãã |
Yes | Yes | 2022.2 | Yes |
| P2029R4: æåã»æååãªãã©ã«äžã®æ°å€ã»ãŠãããŒãµã«ãã£ã©ã¯ã¿ã®ãšã¹ã±ãŒãã«é¢ããåé¡è§£æ±º | - | - | - | No | |
| P2362R3: 1ã¯ã€ãæåã«åãŸããªãã¯ã€ãæåãªãã©ã«ãçŠæ¢ãã | ãšã³ã³ãŒãçµæãšããŠwchar_tã®å€§ããã«åãŸããªãã¯ã€ãæåãªãã©ã«ãçŠæ¢ãã |
13 | 14 | 2023.2 | No |
| P2071R2: ååä»ããŠãããŒãµã«ãã£ã©ã¯ã¿å | 16鲿°ã®ãŠãããŒãµã«ãã£ã©ã¯ã¿ã ãã§ãªãããã®æåã®ååãå ¥åã§ããããã«ãã | 13 | 15 | 2023.2 | No |
| P2096R2: 倿°ãã³ãã¬ãŒãã®éšåç¹æ®åãèš±å¯ | 倿°ãã³ãã¬ãŒãã®éšåç¹æ®åãèš±å¯ããããã«éšåç¹æ®åã®ä»æ§ãæ±çšå | - | - | - | - |
| P2582R1: ç¶æ¿ã³ã³ã¹ãã©ã¯ã¿ããã®ã¯ã©ã¹ãã³ãã¬ãŒãåŒæ°ã®æšè« | ç¶æ¿ã³ã³ã¹ãã©ã¯ã¿ãããã¯ã©ã¹ãã³ãã¬ãŒãåŒæ°ãæšè«ã§ããããã«ãã | 14 | No | No | No |
P1938R3: if consteval |
ã³ã³ãã€ã«æã®æèãã©ããã§åå²ããã | 12 | 14 | - | 2022 Update 14 |
P1401R5: 宿°åŒã®æèã§ã®boolãžã®çž®å°å€æãèš±å¯ |
if constexpr(flags & Flags::Exec)ãstatic_assert(N);ãèš±å¯ |
9 | 13 | 2022.2 | 2022 Update 14 |
| P2242R3: 宿°åŒå ã§ã®éãªãã©ã«å€æ°ãéç倿°ã»ã¹ã¬ããããŒã«ã«å€æ°ããã³gotoãšã©ãã«ã®ååšãèš±å¯ãã | ã³ã³ãã€ã«æã«è©äŸ¡ãããªãéãã宿°åŒå ã«éç倿°ã»ã¹ã¬ããããŒã«ã«å€æ°ããã³gotoæãšã©ãã«ãå«ãããšãèš±å¯ãã | 12 | 15 | 2022.2 | 2022 Update 13 |
| P2246R1: éçãªèšºæã¡ãã»ãŒãžã®æåãšã³ã³ãŒãã£ã³ã° | static_assertã[[deprecated]]ãªã©ã®èšºæã¡ãã»ãŒãžã®æåéåã«é¢ããèŠä»¶ããªãã |
16 | Yes | 2022.2 | 2022 |
P2448R2: constexpr颿°ã宿°å®è¡ã§ããªãå Žåã§ã驿 Œãšãã |
13 | 17 (partial) 19 |
2024.0 (partial) | No | |
P2647R1: constexpr颿°å
ã§ã®static constexpr倿°ãèš±å¯ |
constexpr颿°ã®ããŒã«ã«ã§å®æ°ãå®çŸ©ã§ããããã«ãã |
13 | 16 | 2023.2 | 2026 Update 6 |
P2564R3: constexpr颿°å
ã§consteval颿°ãåŒã³åºããªãåé¡ãç·©å |
constevalåŒã³åºããå«ãconstexpr颿°ãæ¡ä»¶ä»ãã§consteval颿°ãšã¿ãªãããã«ãã |
14 | 17 | 2024.0 | 2026 Update 12 |
P1102R2: ã©ã ãåŒã§()ãçç¥ã§ããæ¡ä»¶ãç·©å |
ä¿®é£Ÿãæ»ãå€åããšããªã£ãŠããã©ã¡ãŒã¿ãªã¹ãã空ã§ããã°()ãçç¥ã§ãã |
11 | 13 | 2022.2 | 2022 Update 14 |
| P2173R1: ã©ã ãåŒã«å¯Ÿãã屿§ | ã©ã ãåŒã®ããã€ãã®ç®æã«å±æ§ãèšè¿°ã§ããããã«ãã | 9 | 13 | 2022.2 | 2022 Update 14 |
| P1774R8: ã³ãŒãå 容ã®ä»®å®ãã³ã³ãã€ã©ã«äŒããassume屿§ | æé©åã®ããã«ãã³ãŒãã®ä»®å®ãã³ã³ãã€ã©ã«äŒãã屿§ãæšæºåãã | 13 | 19 | No | No |
| P2316R2: æåãªãã©ã«ãšã³ã³ãŒãã£ã³ã°ãäžè²«ããã | ããªããã»ããµã®æ¡ä»¶åŒã§ã®æåãªãã©ã«ã®æ±ããC++åŒãšåæ§ã«ãã | Yes | Yes | 2022.2 | 2022 |
P2334R1: elif/elifdef/elifndefã®ãµããŒãã远å |
#if/#ifdef/#ifndefã«å¯Ÿå¿ããè€æ°æ¡ä»¶åœä»€ã®ãµããŒãã远å ãã |
12 | 13 | 2022.2 | 2022 Update 10 |
P2437R1: #warningã®ãµããŒãã远å |
å€ãã®C++ã³ã³ãã€ã©ãå®è£
ããŠããããªããã»ã¹æã®èŠå#warning messageãæ£åŒãµããŒã |
Yes | Yes | 2023.2 | 2026 |
| P2295R6: æ±çšçãªãœãŒã¹ã³ãŒãã®ãšã³ã³ãŒãã£ã³ã°ãšããŠUTF-8ããµããŒã | ãã¹ãŠã®ã³ã³ãã€ã©ã¯UTF-8æåã³ãŒãã®ãœãŒã¹ã³ãŒãããµããŒãããªããã°ãªããªã | 13 | 15 | 2023.2 | 2019 Update 2 |
| P2223R2: è¡æ«ã¹ããŒã¹ãç¡èŠããããèŠå® | è¡æ«ãã\ ãã§ããã£ãŠããå Žåã«MSVCã¯è¡ã®ç¶ç¶ãããªãå®è£
ã«ãªã£ãŠããããåäœãå
±éåãããã仿§ãèŠå® |
Yes | Yes | 2022.2 | 2026 |
ååŠçç³»ã®C++23å®è£ ç¶æ³ããŒãžïŒ
- GCC: C++23 Support in GCC
- Clang: C++23 implementation status
- Visual C++ (MSVC):
- Microsoft C/C++ language conformance by Visual Studio version
- C++ Conformance improvements, behavior changes, and bug fixes in Visual Studio 2022
- C++ Language Updates in MSVC in Visual Studio 2022 17.13
- MSVC Compiler Language Updates in Visual Studio 2022 version 17.12
- C++ Language Updates in MSVC in Visual Studio 2022 17.14
- C/C++ Conformance improvements, behavior changes, and bug fixes in Microsoft C++ (MSVC) Build Tools
- ICX: C++23 Features Supported by Intel® C++ Compiler
C++26èšèªæ©èœã®å®è£ ç¶æ³
| èšèªæ©èœ | 説æ | GCC | Clang | ICX | MSVC |
|---|---|---|---|---|---|
P2752R3: std::initializer_listã®é
åãéçèšæ¶åã«é
眮ãã |
std::vector v = {1, 2, 3};ã®ãããªåæåã§åæååãªã¹ããéçèšæ¶åã«é
眮ããããšã§ç¡é§ãªã³ããŒããªãã |
14 | |||
P2169R4: 宣èšã®ã¿ã§äœ¿çšããªã倿°ã®ååãšããŠ_ããµããŒã |
倿°å_ã¯æé»ã§[[maybe_unused]]ãæå®ããã |
14 | 18 | ||
| P1854R4: æååãªãã©ã«ã®æåãšã³ã³ãŒãã£ã³ã°å€±æãäžé©æ Œãšãã | æååãªãã©ã«ã®ãšã³ã³ãŒãã£ã³ã°æã«æå衚çŸã倱ãããå Žåã«ã³ã³ãã€ã«ãšã©ãŒã«ãã | 14 | 14 | ||
| P2361R6: ã³ã³ãã€ã«æã«ã®ã¿äœ¿çšãããæååã®æ±ããæç¢ºå | static_assertã[[deprecated]]ãªã©ã§äœ¿çšãããã³ã³ãã€ã«æã®æååã«ã€ããŠãæåã³ãŒãã®æå®ãçŠæ¢ããå®è¡æãšã³ã³ãŒãã£ã³ã°ãè¡ãããªãããšãèŠå® |
14 | 18 | ||
| P2552R3: 屿§ã®ç¡èŠæ§ãèŠçŽã | æ§æãšããŠé©æ Œãªå±æ§ã®ã¿ãç¡èŠã§ããããã«ããããã§ãªã屿§ã®äœ¿çšãäžé©æ Œãšãã | 15 | Yes | ||
P2738R1: 宿°åŒã§ã®void*ãããã€ã³ã¿åãžã®ãã£ã¹ããèš±å¯ |
åæ¶å»ã®ããã«void*ãããã€ã³ã¿åãžã®ãã£ã¹ããèš±å¯ãã |
14 | 17 | ||
P2741R3: static_assertã®èšºæã¡ãã»ãŒãžã«ãŠãŒã¶ãŒãçæããæååã®æå®ãèš±å¯ |
constexprãªS.size()ãšS.data()ã¡ã³ã颿°ããã€ãªããžã§ã¯ããã³ã³ãã€ã«ææååãšããŠæå®ã§ããããã«ãã |
14 | 17 | ||
| P2558R2: åºæ¬æåéåã«@ã$ã`ã远å | Cèšèªãšã®äºææ§ã®ããã«ãããã®æåãåºæ¬æåéåã«è¿œå | 15 | Yes | ||
| P2662R3: ãã©ã¡ãŒã¿ããã¯ãžã®ã€ã³ããã¯ã¹ã¢ã¯ã»ã¹ãèš±å¯ | å¯å€åŒæ°ãã³ãã¬ãŒãã®ãã©ã¡ãŒã¿ããã¯ã«æ·»åã¢ã¯ã»ã¹ã§ããããã«ãã | 15 | 19 | ||
| P2864R2: éæšå¥šãšãªã£ãŠããåæå€ããç®è¡åãžã®æé»å€æãåé€ | C++20ããéæšå¥šãšãªã£ãŠããåæå€ãžã®ç®è¡æŒç®ã§ç®è¡åã«æé»å€æããã仿§ãåé€ | 14 | 18 | ||
| P2748R5: è¿åŽããã巊蟺å€ããæé»å€æãããäžæãªããžã§ã¯ããåç §ã«æçžãããããšãçŠæ¢ãã | 寿åœåãã®å€æ°ã«ãã£ãŠåŒãèµ·ãããããã°ã鲿¢ãã | 14 | 19 | ||
| P3106R1: èŠçŽ æ°äžæã®é åãéæäœåæåããèŠåãæç¢ºå | é
åèŠçŽ ã®éæäœåæåã§{}ãçç¥ãããå Žåã®ççŸããŠããèŠå®ãä¿®æ£ |
Yes | 17 | ||
| P0609R3: æ§é åæçžãžã®å±æ§ãèš±å¯ | auto [a, b [[maybe_unused]], c] = f();ã®ããã«æ§é åæçžã®èŠçŽ ã«å¯ŸããŠå±æ§ãä»å ã§ããããã«ãã |
15 | 19 | ||
| P3034R1: ã¢ãžã¥ãŒã«å®£èšã§ã®ã¢ãžã¥ãŒã«åã®ãã¯ãå±éãçŠæ¢ãã | export module MACRO_NAME;ãçŠæ¢ |
15 | |||
| P2809R3: 空ã®ç¡éã«ãŒãã¯æªå®çŸ©åäœã§ã¯ãªããšèŠå® | 䞊è¡ããã°ã©ã ã®é²è¡ä¿èšŒãªã©ãèæ ®ããŠç©ºã®ç¡éã«ãŒããæªå®çŸ©åäœã§ã¯ãªããã®ãšãã | 14 | 19 | ||
| P2795R5: æªåæå倿°ã®èªã¿åãããšã©ãŒæ§åäœãšãã | åæåãããŠããªãèªå倿°ã®èªã¿åãã®å®å šæ§ãèŠå®ãã | 16 | |||
| P2573R2: 颿°å®£èšãåé€ããçç±ãæå®ã§ããããã«ãã | f() = delete("reason"); |
15 | 19 | ||
P2893R3: å¯å€åŒæ°ãã³ãã¬ãŒãã§friend宣èšãã§ããããã«ãã |
ã¯ã©ã¹ãã³ãã¬ãŒãã®å¯å€åŒæ°ãã³ãã¬ãŒãã§ãŸãšããŠfriend宣èšã§ããããã«ãã |
15 | 20 | ||
P2747R2: constexpré
眮new |
宿°åŒã®æèã§ã®é
眮newãèš±å¯ |
15 | 20 | ||
P3144R2: äžå®å
šåãžã®ãã€ã³ã¿ã«å¯Ÿããdeleteãäžé©æ Œãšãã |
æªå®çŸ©åäœãåŒãèµ·ããæäœãã³ã³ãã€ã«ãšã©ãŒãšãã | 15 | 19 | ||
| P2963R3: å¶çŽåŒå ã§ã®ç³ã¿èŸŒã¿åŒã®é åºä»ã | ç³ã¿èŸŒã¿åŒãå«ãå¶çŽã®å æé¢ä¿ãèªèã§ããããã«ãããªãŒããŒããŒãè§£æ±ºã®ææ§ããè§£æ¶ãã | 19 | |||
| P0963R3: æ¡ä»¶åŒã§ã®æ§é åæçžã®äœ¿çšãèš±å¯ | åŒå
šäœãboolå€ã«å€æã§ããå Žåã«æ¡ä»¶åŒã§æ§é åæçžã䜿çšã§ããããšãšãã |
15 | 21 | ||
P2686R5: constexpræ§é åæçžã®èš±å¯ãšãconstexpråç
§ã®å¶éç·©å |
宿°åŒã«å¯Ÿããæ§é åæçžãèš±å¯ããé¢é£ããŠconstexpråç
§ã®å¶éãç·©åããŠèªå倿°ãåç
§ã§ããããã«ãã |
16 | |||
| P3068R6: 宿°è©äŸ¡ã§ã®äŸå€éåºãèš±å¯ | 宿°åŒã®æèã§ã®äŸå€ã®éåºãšææãèš±å¯ | 16 | |||
| P2865R6: éæšå¥šã ã£ãçµã¿èŸŒã¿é åã®æ¯èŒãåé€ | C++20ã§éæšå¥šãšãªã£ãŠããé 忝èŒãåé€ | 15 | 20 | ||
| P1061R10: æ§é åæçžã§ããã¯ãå°å ¥ã§ããããã«ãã | ã¿ãã«ãåè§£ããéã«è€æ°ã®å€æ°ãããã¯ãšããŠå®£èšã§ããããã«ãããauto [a, ...xs] = f(); |
16 | |||
| P3176R0: å è¡ããã«ã³ãã®ãªãçç¥èšå·ãéæšå¥šå | void f(int, ...);ã¯OKãvoid f(int...);ã¯éæšå¥š |
15 | 20 | ||
| P3074R7: å ±çšäœã®ç¹æ®ã¡ã³ã颿°ã®ããªãã¢ã«å | éããªãã¢ã«ãªåãã¡ã³ãã«ãã€å ±çšäœã®ããã©ã«ãã³ã³ã¹ãã©ã¯ã¿ãšãã¹ãã©ã¯ã¿ãããªãã¢ã«ã«ããæªåæåã¹ãã¬ãŒãžãšããŠäœ¿çšå¯èœã«ãã | 17 | |||
| P2900R14: å¥çŽããã°ã©ãã³ã°ããµããŒããã | 颿°ã®äºåæ¡ä»¶ãäºåŸæ¡ä»¶ãäžå€æ¡ä»¶ãèšè¿°ã§ããããã«ãã | 16 | |||
| P2841R7: ã³ã³ã»ãããšå€æ°ãã³ãã¬ãŒãããã³ãã¬ãŒãåŒæ°ãšããŠæž¡ããããã«ãã | ãã³ãã¬ãŒããã³ãã¬ãŒããã©ã¡ãŒã¿ãšããŠãã¯ã©ã¹ãã³ãã¬ãŒãããšã€ãªã¢ã¹ãã³ãã¬ãŒãã«å ããã³ã³ã»ãããšå€æ°ãã³ãã¬ãŒããæž¡ããããã«ãã | ||||
P1967R14: ãã¡ã€ã«ãèªã¿èŸŒã#embedåœä»€ã远å |
ãã€ããªãã¡ã€ã«ãã€ã³ã¯ã«ãŒãããã¡ã«ããºã ã#includeãšã¡ãã£ãŠèªã¿åºããµã€ãºãªã©ã®æè»ãªæå®ãã§ãã |
15 | |||
P3618R0: main颿°ãã°ããŒãã«ã¢ãžã¥ãŒã«ã«å«ããããããã«ãã |
main颿°ã«extern "C++"ãæå®ã§ããããã«ããããšã§ååä»ãã¢ãžã¥ãŒã«ã«å«ããããããã«ãã |
16 | 21 | ||
| P2996R13: éçãªãã¬ã¯ã·ã§ã³ | ãªãã¬ã¯ã·ã§ã³æŒç®å^^ãšstd::meta::infoåã«ããã³ã³ãã€ã«æã«ããŸããŸãªæ
å ±ãååŸã§ãã |
16 (-freflection ãªãã·ã§ã³æå®) |
|||
P1306R5: ã³ã³ãã€ã«æã®ã¿ãã«ããªã¹ããå±éåŠçããtemplate foræ |
ã¿ãã«ã»æ§é äœã»Rangeã»ãã©ã¡ãŒã¿ããã¯ãªã©ã®åèŠçŽ ã«å¯ŸããŠã³ã³ãã€ã«æã«æãå±éããtemplate foræã远å |
16 | |||
P3533R2: constexprä»®æ³ç¶æ¿ãèš±å¯ |
宿°åŒã®æèã§ã®ä»®æ³ç¶æ¿ãèš±å¯ | 16 | |||
| P2843R3: ããªããã»ããµä»æ§ã§ã®ãæªå®çŸ©åäœããäžé©æ Œ (蚺æäžèŠ) ã«å€æŽ | ããªããã»ããµãšã¬ããµãŒã®æèã§ã®ãæªå®çŸ©åäœãçšèªãäžé©æ Œ (蚺æäžèŠ) ã«å€æŽ | 16 | |||
P3868R1: ã¢ãžã¥ãŒã«å®£èšããåã§ã®#lineãã£ã¬ã¯ãã£ãã®äœ¿çšãèš±å¯ãã |
ã¢ãžã¥ãŒã«å®£èšããåã§ã®#lineãã£ã¬ã¯ãã£ãã®äœ¿çšãçŠæ¢ããŠããã®ã¯é床ãªå¶éã ã£ã |
||||
P4136R2: #lineãã£ã¬ã¯ãã£ãã®å¶çŽãçŸå®ã®å®è£
ã«åãããŠç·©åãã |
#line 0ã#line 2147483648ã®ãããªè¡çªå·æå®ãäžé©æ ŒãšããŠããããæ¡ä»¶ä»ããµããŒããšããŠèš±å¯ãã |
Yes | |||
| P4004R1: å¯å€åŒæ°ãã³ãã¬ãŒãã®åé åºã忀èšãã | å¯å€åŒæ°ãã³ãã¬ãŒãã®éšåç¹æ®åã®åé åºã«ãŒã«ã忀èšããŠãããäžè²«ããã«ãŒã«ã«ãã | ||||
| P3865R3: ãã³ãã¬ãŒããã³ãã¬ãŒããã©ã¡ãŒã¿ã«å¯Ÿããã¯ã©ã¹ãã³ãã¬ãŒããã©ã¡ãŒã¿åŒæ°æšè« | ãã³ãã¬ãŒããã³ãã¬ãŒããã©ã¡ãŒã¿ããã¯ã©ã¹ãã³ãã¬ãŒãåŒæ°ãæšè«ã§ããããã«ã¯ã©ã¹ãã³ãã¬ãŒãã®ãã³ãã¬ãŒãåŒæ°æšè«ãæ¡åŒµãã | ||||
| P3726R2: å ±çšäœã¡ã³ãã®çåæéèŠåã®èª¿æŽ | å
±çšäœã®å
é ã¡ã³ãã®çåæéãæé»ã«éå§ããèŠåãæ€åããŠstd::start_lifetime()ã«ããæç€ºçãªéå§ãžå€æŽããçåæéå€ã®èŠçŽ ãå«ãé
åã¡ã³ãã宿°åŒã§èš±å¯ãã |
17 | |||
| P4143R0: 宿°è©äŸ¡ã®éå§ã»çµäºã¿ã€ãã³ã°ãæç¢ºå | 宿°è©äŸ¡ãã©ã®ã¿ã€ãã³ã°ã§éå§ã»çµäºããããæç¢ºåããconstexprã³ã³ããã¹ãã®èŠåãæŽãã | ||||
| P4149R1: SFINAEãé©çšããããçŽæ¥æèããå®çŸ© | ãã³ãã¬ãŒãã®çœ®æå€±æããšã©ãŒã«ãªããªãç¯å²ããçŽæ¥æèããšããŠæ£åŒã«å®çŸ©ããããã©ã«ãåŒæ°ã»noexceptæå®ã»å¥çŽæå®åã®äžã§ã®çœ®æå€±æãã³ã³ãã€ã«ãšã©ãŒãšãªãããšãæç¢ºåãã |
||||
| P3769R1: é 眮newã®è§£æŸåŠçãæç¢ºå | é
眮newã§ç¢ºä¿ããã¡ã¢ãªã®è§£æŸåŠçã®åãæ±ãã«é¢ããã«ãŒã«ãæç¢ºåãã |
17 |
ååŠçç³»ã®C++26å®è£ ç¶æ³ããŒãžïŒ
- GCC: C++26 Support in GCC
- Clang:
- Visual C++ (MSVC):
C++29èšèªæ©èœã®å®è£ ç¶æ³
| èšèªæ©èœ | 説æ | GCC | Clang | ICX | MSVC |
|---|---|---|---|---|---|
| P3596R3: æªå®çŸ©åäœãšIFNDRã®äžèЧãèŠæ Œã®ä»é²ã«è¿œå | ã³ã¢èšèªã§æç€ºçã«èŠå®ãããŠãããã¹ãŠã®æªå®çŸ©åäœãšã蚺æäžèŠã§äžé©æ Œ (IFNDR) ãšãªããã¹ãŠã®èŠåããå®å®ããååã»èª¬æã»ã³ãŒãäŸä»ãã§åæããåèæ å ±ã®ä»é²ã远å ãã | - | - | - | - |
| P2287R6: åºåºã¯ã©ã¹ã®ã¡ã³ã倿°ã«å¯Ÿããæç€ºä»ãåæåãèš±å¯ | B{.a=1, .b=2}ã®ããã«ãéæäœã®æç€ºä»ãåæåã§åºåºã¯ã©ã¹ã®ã¡ã³ã倿°ãçŽæ¥æå®ã§ããããã«ãããåºåºã¯ã©ã¹éšåãåæåããæç€ºãªãåæååãšã®æ··åšãèš±å¯ãã |
17 | |||
| P2953R5: defaultå®çŸ©ã§ããä»£å ¥æŒç®åã®ã·ã°ããã£ãå¶é | A& operator=(const A&) && = defaultã®ãããªå³èŸºå€ä¿®é£ŸãCV修食ããã代å
¥æŒç®åã®defaultå®çŸ©ãäžé©æ Œãšããããããã®ä»£å
¥æŒç®åãèªåã§å®çŸ©ããããšã¯åŒãç¶ãã§ãã |
17 | |||
| P3899R3: æµ®åå°æ°ç¹æŒç®ã®ãªãŒããŒãããŒãšç¡é倧ã»NaNã®æ±ããæç¢ºå | ç¡é倧ã衚çŸã§ããæµ®åå°æ°ç¹åã§ã¯ããªãŒããŒãããŒã¯æªå®çŸ©åäœã§ã¯ãªãç¡é倧ãçæãããšèŠå®ããããªãŒããŒãããŒãNaNãæ°ãã«çæããæŒç®ã¯å®æ°åŒã«ãªãããç¡é倧ã»NaNã®äŒæã¯å®æ°åŒãšããŠæ±ãã | 15 (partial) | |||
| P3668R4: åŸçœ®ã€ã³ã¯ãªã¡ã³ãã»ãã¯ãªã¡ã³ãæŒç®ã®defaultå®çŸ© | åŸçœ®++ïŒ--ã= defaultã§å®çŸ©ïŒå眮çããèªåçæïŒã§ããããã«ãã |
24 | |||
| P2434R5: æŽæ°ãããã€ã³ã¿ãžã®å€æãšãã€ã³ã¿ã®ç±æ¥ã®æ±ããèŠå® | æŽæ°ãããã€ã³ã¿ãžã®å€æã§ã¯ããã®æŽæ°ãžå€æã§ãããã€ã³ã¿å€ã®ãã¡ãããã°ã©ã ã®åäœãå®çŸ©ãããå€ãéžæããããšèŠå®ãã | ||||
| P3347R6: ç¡å¹ãªãã€ã³ã¿å€ã®èªã¿æžãã»ã³ããŒãå®çŸ©ãããåäœãšãã | ç¡å¹ãªãã€ã³ã¿å€ã®äœ¿çšã®ãã¡ã鿥åç §ã¯æªå®çŸ©åäœãæ¯èŒãªã©ã¯åŠçç³»å®çŸ©ã®ãŸãŸãšããèªã¿èŸŒã¿ã»æžã蟌ã¿ã»ã³ããŒãªã©ãã以å€ã®æäœãå®çŸ©ãããåäœãšãã | ||||
| P3658R1: æ°åŠäºæèšæ³ã®æåãèå¥åãšããŠèš±å¯ | Unicodeã®æ°ããå§åã«åŸããâfãx²ã®ãããªæ°åŠèšæ³ã®æåïŒID_Compat_Math_StartïŒContinueããããã£ãæã€æåïŒãèå¥åã«äœ¿çšã§ããããã«ãã |
17 | 16 | 2026 Update 12: C++23ã¢ãŒã以éã§æå¹ | |
P3950R1: ã³ã«ãŒãã³ã®promiseåã§return_valueãšreturn_voidã®äž¡æ¹ã®å®£èšãèš±å¯ |
1ã€ã®ã³ã«ãŒãã³å
ã«ãå€ããšããªãco_returnæãšãšããªããªãco_returnæãæ··åšãããããããã«ãã |
17 | |||
| P3733R1: ååä»ããŠãããŒãµã«ãã£ã©ã¯ã¿åã§äœ¿çšã§ããå¥åãæ¡åŒµ | \N{âŠ}ã«æå®ã§ããæååã®å¥åã®åé¡å¶éãæ€å»ãã\N{NBSP}ã®ãããªç¥ç§° (abbreviation) ãªã©ã䜿çšã§ããããã«ãã |
17 | 23 | ||
| P3847R1: ã©ã ãåŒã®ãã£ããã£ãæžãããé ã«åæåãããããšãä¿èšŒ | æç€ºçãªãã£ããã£ã«å¯Ÿå¿ããã¯ããŒãžã£åã®ã¡ã³ã倿°ãããã£ããã£ãæžããé ã«å®£èšã»åæåãããéé ã«ç Žæ£ãããããšãä¿èšŒãã | Yes | Yes | Yes | |
| P2243R0: extern "C"ã®äžã§ã®ãã³ãã¬ãŒãã®å®£èšãèš±å¯ | ãã³ãã¬ãŒããCèšèªãªã³ã±ãŒãžãæã€ããšãçŠæ¢ããèŠå®ãåé€ããextern "C"ã®äžã§ãã³ãã¬ãŒãã宣èšã§ããããã«ãããCèšèªãªã³ã±ãŒãžã®é¢æ°ãã€ã³ã¿åãããã³ãã¬ãŒããã©ã¡ãŒã¿ã«äŸåããåœ¢ã§æžããããã«ãªã |
||||
| P3424R2: äŸå€ãéåºãããäŸå€æå®ããã€è§£æŸé¢æ°ãäžé©æ Œãšãã | operator deleteãªã©ã®è§£æŸé¢æ°ã«ãnoexcept(false)ã®ãããªäŸå€ãéåºãããäŸå€æå®ãä»ããããšãäžé©æ Œãšãããè§£æŸé¢æ°ããã®äŸå€éåºã«ããæªå®çŸ©åäœãžå°éããçµè·¯ãã宣èšã®æç¹ã§æé€ãã |
17 | |||
P3822R2: requiresåŒã®è€åèŠä»¶ã§æ¡ä»¶ä»ãnoexceptæå®ãèš±å¯ |
requiresåŒã®è€åèŠä»¶ã§ã{ åŒ } noexcept(宿°åŒ)圢åŒã®æ¡ä»¶ä»ãnoexceptæå®ãæžããããã«ãã |
17 | |||
| P3097R3: ä»®æ³é¢æ°ãžã®äºåæ¡ä»¶ã»äºåŸæ¡ä»¶ã®æå®ãèš±å¯ | C++26ã§äžé©æ ŒãšãããŠãããä»®æ³é¢æ°ãžã®äºåæ¡ä»¶preã»äºåŸæ¡ä»¶postã®æå®ãèš±å¯ãããä»®æ³é¢æ°åŒã³åºãã§ã¯ãéçã«éžæããã颿°ãšå®éã«åŒã³åºããã颿°ã®äž¡æ¹ã®ã¢ãµãŒã·ã§ã³ãè©äŸ¡ããã |
||||
| P4101R1: consteval-onlyåã®èŠåãconsteval-onlyå€ã®èŠåãžçœ®ãæã | ãªãã¬ã¯ã·ã§ã³ãå®è¡æãžæŒããããšãé²ãèŠåããåããŒã¹ããå€ããŒã¹ãžå€æŽãã | 17 | |||
| P2414R12: ã¢ãããã¯æäœãšvolatileã¢ã¯ã»ã¹ã§ã®ç¡å¹ãªãã€ã³ã¿å€ã®æ±ããèŠå® | ã¢ãããã¯ãã€ã³ã¿ã®æäœãvolatileã¢ã¯ã»ã¹ã®çµæãç¡å¹ãªãã€ã³ã¿å€ãšãªãå ŽåãæŽæ°ãžã®åŸåŸ©å€æãçµãæå¹ãªãã€ã³ã¿å€ã«ãªããšèŠå®ãããè§£æŸãšäžŠè¡ããŠãã€ã³ã¿ãæ±ãããã¯ããªãŒã¢ã«ãŽãªãºã ãå®çŸ©ãããåäœã«ãã | ||||
| P3670R4: ãã³ãã¬ãŒããã³ãã¬ãŒããã©ã¡ãŒã¿ã®ããã¯ãžã®ã€ã³ããã¯ã¹ã¢ã¯ã»ã¹ãèš±å¯ | ãã³ãã¬ãŒããã³ãã¬ãŒããã©ã¡ãŒã¿ã®ããã¯ã«TT...[N]圢åŒã§ã€ã³ããã¯ã¹ã¢ã¯ã»ã¹ã§ããããã«ãã |
24 | |||
P3540R3: #embedã«offsetãã©ã¡ãŒã¿ã远å |
#embedã®ãã©ã¡ãŒã¿ãšããŠããªãœãŒã¹ã®å
é ããæå®ããèŠçŽ æ°ãèªã¿é£ã°ãoffsetã远å ãã |
17 |