{"id":2793,"date":"2011-09-12T09:00:00","date_gmt":"2011-09-12T09:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/vcblog\/2011\/09\/12\/c11-features-in-visual-c-11\/"},"modified":"2019-02-18T18:44:47","modified_gmt":"2019-02-18T18:44:47","slug":"c11-features-in-visual-c-11","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/c11-features-in-visual-c-11\/","title":{"rendered":"C++11 Features in Visual C++ 11"},"content":{"rendered":"<p><span style=\"font-size: small\"><strong><span style=\"background-color: #ffff00\">UPDATE &#8211; March 2, 2012<\/span>:<\/strong> the range-based for-loop and override\/final v1.0 have been implemented in VC11 Beta.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>There&#8217;s a new C++ Standard and a new version of Visual C++, and it&#8217;s time to reveal what features from the former we&#8217;re implementing in the latter!<\/p>\n<p><span style=\"text-decoration: underline\">Terminology notes<\/span>: During its development, the new C++ Standard was (optimistically) referred to as C++0x.&nbsp; It&#8217;s finally being published in 2011, and it&#8217;s now referred to as C++11.&nbsp; (Even International Standards slip their release dates.)&nbsp; The Final Draft International Standard is no longer publicly available.&nbsp; It was immediately preceded by Working Paper <a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2011\/n3242.pdf\">N3242<\/a>, which is fairly close in content.&nbsp; (Most of the people who care about the differences are compiler\/Standard Library devs who already have access to the FDIS.)&nbsp; Eventually, I expect that the C++11 Standard will be available from ANSI, like C++03 is.<\/p>\n<p>As for Visual C++, it has three different version numbers, for maximum fun.&nbsp; There&#8217;s the branded version (printed on the box), the internal version (displayed in Help About), and the compiler version (displayed by cl.exe and the <span style=\"font-family: Courier New\">_MSC_VER<\/span> macro &#8211; this one is different because our C++ compiler predates the &#8220;Visual&#8221; in Visual C++).&nbsp; For example:<\/p>\n<p><span style=\"font-family: Courier New\">VS 2005 == VC8 == _MSC_VER 1400<br \/><\/span><span style=\"font-family: Courier New\">VS 2008 == VC9 == _MSC_VER 1500<br \/><\/span><span style=\"font-family: Courier New\">VS 2010 == VC10 == _MSC_VER 1600<\/span><\/p>\n<p>The final branding for the new version hasn&#8217;t been announced yet; for now, I&#8217;m supposed to say &#8220;Visual C++ in Visual Studio 11 Developer Preview&#8221;.&nbsp; Internally, it&#8217;s just VC11, and its <span style=\"font-family: Courier New\">_MSC_VER<\/span> macro is 1700.&nbsp; (That macro is of interest to people who want to target different major versions of VC and emit different code for them.)&nbsp; I say VC10 and VC11 because they&#8217;re nice and simple &#8211; the 11 in VC11 does not refer to a year.&nbsp; (VS 2010 == VC10 was a confusing coincidence.)<\/p>\n<p>If you read <a href=\"http:\/\/blogs.msdn.com\/b\/vcblog\/archive\/2010\/04\/06\/c-0x-core-language-features-in-vc10-the-table.aspx\">C++0x Core Language Features In VC10: The Table<\/a> last year, the following table will look familiar to you.&nbsp; This time, I started with GCC&#8217;s table again, but I reorganized it more extensively for increased accuracy and clarity (as many features went through significant revisions):<\/p>\n<p>&nbsp;<\/p>\n<table style=\"width: 410px;list-style-type: disc;border-collapse: collapse\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<colgroup>\n<col width=\"283\" style=\"width: 212pt\">\n<col width=\"64\" style=\"width: 48pt\"><\/colgroup>\n<tbody>\n<tr style=\"height: 15pt\">\n<td width=\"282\" height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;background: #f79646;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #ffffff;font-size: 9pt\"><strong><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2009\/n2869.html\" target=\"_blank\">C++11 Core Language Features<\/a><\/strong><\/span><\/td>\n<td width=\"64\" align=\"center\" class=\"xl66\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #f79646;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #ffffff;font-size: 9pt\"><strong>VC10<\/strong><\/span><\/td>\n<td width=\"64\" align=\"center\" class=\"xl66\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #f79646;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #ffffff;font-size: 9pt\"><strong>VC11<\/strong><\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">Rvalue references <a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2004\/n1610.html\" target=\"_blank\">v0.1<\/a>, <a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2006\/n2118.html\" target=\"_blank\">v1.0<\/a>, <a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2009\/n2844.html\" target=\"_blank\">v2.0<\/a>, <a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/cwg_defects.html#1138\" target=\"_blank\">v2.1<\/a>, <a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2010\/n3053.html\" target=\"_blank\">v3.0<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl67\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">v2.0<\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">v2.1*<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\"><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2007\/n2439.htm\" target=\"_blank\">ref-qualifiers<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\"><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2008\/n2756.htm\" target=\"_blank\">Non-static data member initializers<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">Variadic templates <a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2007\/n2242.pdf\" target=\"_blank\">v0.9<\/a>, <a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2008\/n2555.pdf\" target=\"_blank\">v1.0<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\"><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2008\/n2672.htm\" target=\"_blank\">Initializer lists<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-family: Courier New;font-size: 9pt\"><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2004\/n1720.html\" target=\"_blank\">static_assert<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">Yes<\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">Yes<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">auto <a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2006\/n1984.pdf\" target=\"_blank\">v0.9<\/a>, <a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2008\/n2546.htm\" target=\"_blank\">v1.0<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">v1.0<\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">v1.0<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\"><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2008\/n2541.htm\" target=\"_blank\">Trailing return types<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">Yes<\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">Yes<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">Lambdas <a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2008\/n2550.pdf\" target=\"_blank\">v0.9<\/a>, <a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2008\/n2658.pdf\" target=\"_blank\">v1.0<\/a>, <a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2009\/n2927.pdf\" target=\"_blank\">v1.1<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl67\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">v1.0<\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">v1.1<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\"><span style=\"font-family: Courier New\">decltype<\/span> <a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2007\/n2343.pdf\" target=\"_blank\">v1.0<\/a>, <a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2011\/n3276.pdf\" target=\"_blank\">v1.1<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl67\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">v1.0<\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">v1.1**<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\"><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2005\/n1757.html\" target=\"_blank\">Right angle brackets<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">Yes<\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">Yes<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\"><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/cwg_defects.html#226\" target=\"_blank\">Default template arguments for function templates<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\"><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2008\/n2634.html\" target=\"_blank\">Expression SFINAE<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\"><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2007\/n2258.pdf\" target=\"_blank\">Alias templates<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\"><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2006\/n1987.htm\" target=\"_blank\">Extern templates<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">Yes<\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">Yes<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-family: Courier New;font-size: 9pt\"><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2007\/n2431.pdf\" target=\"_blank\">nullptr<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">Yes<\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">Yes<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\"><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2007\/n2347.pdf\" target=\"_blank\">Strongly typed enums<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl67\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">Partial<\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">Yes<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\"><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2008\/n2764.pdf\" target=\"_blank\">Forward declared enums<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<td align=\"center\" class=\"xl68\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ccff99;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">Yes<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\"><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2008\/n2761.pdf\" target=\"_blank\">Attributes<\/a><\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<td align=\"center\" class=\"xl69\" style=\"border-bottom: medium none;border-left: medium none;padding-left: 1px;padding-right: 1px;background: #ffcccc;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: #f79646 0.5pt solid;padding-top: 1px\"><span style=\"color: #000000;font-size: 9pt\">No<\/span><\/td>\n<\/tr>\n<tr style=\"height: 15pt\">\n<td height=\"20\" class=\"xl65\" style=\"border-bottom: medium none;border-left: #f79646 0.5pt solid;padding-left: 1px;padding-right: 1px;vertical-align: bottom;border-top: #f79646 0.5pt solid;border-right: medium none;padding-top: 1px\"><span style=\"color: #000000;font-family: Courier New;font-size: 9pt\"><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2007\/n2235.pdf\" target=\"_blank\">c<\/a><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>UPDATE &#8211; March 2, 2012: the range-based for-loop and override\/final v1.0 have been implemented in VC11 Beta. &nbsp; There&#8217;s a new C++ Standard and a new version of Visual C++, and it&#8217;s time to reveal what features from the former we&#8217;re implementing in the latter! Terminology notes: During its development, the new C++ Standard was [&hellip;]<\/p>\n","protected":false},"author":289,"featured_media":35994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[76,65,111,32],"class_list":["post-2793","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus","tag-c0x","tag-compiler","tag-standard-libraries","tag-stl"],"acf":[],"blog_post_summary":"<p>UPDATE &#8211; March 2, 2012: the range-based for-loop and override\/final v1.0 have been implemented in VC11 Beta. &nbsp; There&#8217;s a new C++ Standard and a new version of Visual C++, and it&#8217;s time to reveal what features from the former we&#8217;re implementing in the latter! Terminology notes: During its development, the new C++ Standard was [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/2793","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/289"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=2793"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/2793\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/35994"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=2793"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=2793"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=2793"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}