{"id":413,"date":"2014-08-04T12:33:00","date_gmt":"2014-08-04T12:33:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/vcblog\/2014\/08\/04\/bugs-fixed-in-visual-studio-2013-update-3\/"},"modified":"2019-02-18T18:05:16","modified_gmt":"2019-02-18T18:05:16","slug":"bugs-fixed-in-visual-studio-2013-update-3","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/bugs-fixed-in-visual-studio-2013-update-3\/","title":{"rendered":"Bugs Fixed in Visual Studio 2013 Update 3"},"content":{"rendered":"<p><a href=\"http:\/\/go.microsoft.com\/fwlink\/p\/?LinkId=390465\">Visual Studio 2013 Update 3<\/a> includes a number of fixes filed through Connect:<\/p>\n<ul>\n<li>Calling dispose on a WinRT object could cause a crash.<\/li>\n<li>Using uniform initialization with an overloaded equality operator results in an error. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/812557\/failed-uniform-initialization-throws-error-c2440-function-style-cast-cannot-convert-from-initializer-list-to\">ref1<\/a>)<\/li>\n<li>Using {0} to initialize a struct causes an internal compiler error.<\/li>\n<li>Declaring a const variable sometimes results in a syntax error. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/817616\/visual-c-2013-compiler-bug-regarding-the-use-of-const\">ref1<\/a>)<\/li>\n<li>Using std::make_shared for non-static data member initialization results in a template argument deduction error. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/816257\/error-c2783-when-initializing-non-static-data-member\">ref1<\/a>, <a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/840767\/std-make-shared-as-a-member-initializer\">ref2<\/a>)<\/li>\n<li>Using std::copy with immediately constructed objects causes an internal compiler error in some conditions. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/845632\/c1001-when-compiling-std-copy-with-rvalue-parameters\">ref1<\/a>)<\/li>\n<li>Passing multiple immediately constructed objects to functions can cause internal compiler errors. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/845911\/error-c1001-in-vs2013-when-passing-2-or-more-direct-initialized-objects-to-a-function\">ref1<\/a>)<\/li>\n<li>The compiler incorrectly allows the trivial default constructor to be explicitly declared private via &#8220;= default&#8221;. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/849701\/cant-private-the-explicit-trivial-constructor\">ref1<\/a>)<\/li>\n<li>Using type aliases in a function template can result in errors when it would not have done so if the aliases were explicitly expanded. This affects the usage of std::enable_if_t. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/845750\/broken-using-template-in-vs2013-update-2-rc\">ref1<\/a>)<\/li>\n<li>Using an initializer list with a struct that has a std::array member results in an error. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/823306\/compilation-error-initializer-list-braces-on-a-struct-that-has-an-std-array-member\">ref1<\/a>)<\/li>\n<li>Using nested initializer lists to construct nested vectors causes an internal compiler error. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/883045\/internal-compiler-error-initializing-nested-vector-with-braces-visual-c-2013\">ref1<\/a>)<\/li>\n<li>Initializing an array with empty curly braces causes an internal compiler error.<\/li>\n<li>Using non-static data member initialization can cause incorrect rebuilds. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/831732\/vc-minimal-rebuild-gm-not-working-always-properly-with-in-class-initialization-fields\">ref1<\/a>, <a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/810821\/incorrect-rebuild-after-changing-the-initialization-value-of-c-non-static-data-member-initializer\">ref2<\/a>)<\/li>\n<li>Using initializer lists for non-static data member initialization results in errors. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/800300\/c-11-nsdmi-compiler-error\">ref1<\/a>)<\/li>\n<li>Using non-static data member initialization with empty braces causes an internal compiler error. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/883439\/c1001-non-static-struct-date-member-initialize-with-empty\">ref1<\/a>, <a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/801959\/class-member-initialization-causes-internal-compiler-error\">ref2<\/a>)<\/li>\n<li>Using a fully qualified name results in template errors.<\/li>\n<li>Specifying a templated default function parameter results in errors if the function is in a namespace. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/856699\/compiler-crashes-with-templated-namespaced-default-arguments\">ref1<\/a>, <a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/832608\/error-using-pointer-to-function-template-specialization-as-default-argument-to-template-method\">ref2<\/a>)<\/li>\n<li>Using ::template can cause an incorrect error.<\/li>\n<li>Using variadic templates sometimes results in errors. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/877372\/visual-c-error-c3546-on-valid-code-after-installing-update-2\">ref1<\/a>)<\/li>\n<li>Explicitly using a variadic cast operator causes an internal compiler error. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/821571\/c-compiler-c1001-when-explicitly-calling-variadic-cast-operator\">ref1<\/a>)<\/li>\n<li>Casting a function pointer defined using variadic templates causes an internal compiler error. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/817632\/compiler-crashes-when-casting-function-pointer-defined-by-variadic-template\">ref1<\/a>)<\/li>\n<li>A &#8216;using&#8217; declaration can cause &#8220;failed to specialize function template&#8221; errors. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/829690\/failed-to-specialize-function-connected-to-a-using-declaration-revived\">ref1<\/a>)<\/li>\n<li>Variadic templates can cause internal compiler errors. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/825983\/c-compiler-c1001-when-using-variadic-templates-intensively\">ref1<\/a>)<\/li>\n<li>Using std::forward with variadic templates can cause an internal compiler error. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/812218\/internal-compiler-error-while-compiling-incorrect-code-with-std-forward-and-varadic-templates\">ref1<\/a>)<\/li>\n<li>Using variadic templates with dependent types that start :: results in errors. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/841238\/variadic-templates-fail-on-dependent-types-that-start-with\">ref1<\/a>)<\/li>\n<li>Calling a varargs function with incorrect parameters can cause internal compiler errors.<\/li>\n<li>Calling a varargs function with a unrecognized symbol causes an internal compiler error. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/877912\/vc-fatal-error-c1001-an-internal-error-has-occurred-in-the-compiler\">ref1<\/a>, <a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/877632\/internal-compiler-error-in-six-lines-of-code\">ref2<\/a>, <a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/829934\/msvc-compiler-crashes-instead-of-c3861-missing-forward-declaration\">ref3<\/a>, <a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/816729\/vs-2013-compiler-crash\">ref4<\/a>, <a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/816326\/compiler-crash-calling-functions-with-a-format-string-and-variadic-args-using-a-symbol-that-doesnt-exist\">ref5<\/a>)<\/li>\n<li>Using uniform initialization directly in a return statement can cause internal compiler errors. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/848078\/c-incorrect-overload-resolution-between-initializer-list-constructor-and-default-constructor-when-returning-an-empty-initializer-list-return\">ref1<\/a>, <a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/835159\/cannot-return-vector-unique-ptr-t-using-brace-enclosed-initializer-from-function\">ref2<\/a>)<\/li>\n<li>Malformed operator definitions can cause internal compiler errors. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/868175\/compileerror\">ref1<\/a>, <a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/849488\/msvc-compiler-crashes-with-internal-error\">ref2<\/a>)<\/li>\n<li>Cast operator declarations that use undeclared symbols can cause internal compiler errors. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/900046\/msvc-2013-emits-a-fatal-error-when-declaring-a-conversion-operator-for-an-undeclared-type\">ref1<\/a>, <a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/841190\/templated-cast-operator-crash\">ref2<\/a>)<\/li>\n<li>Malformed reference definitions can cause internal compiler errors. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/846103\/c-c1001-related-to-grammar-y-l6171\">ref1<\/a>, <a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/820976\/c1001-error-for-invalid-reference-intilization\">ref2<\/a>)<\/li>\n<li>Using alias templates with std::enable_if can cause internal compiler errors. (<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/894682\/c-std-enable-if-breaks-within-template-alias\">ref1<\/a>, <a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/890917\/visual-studio-2013-fatal-error-c1001-with-namespace-using\">ref2<\/a>, <a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/845762\/internal-compiler-error-in-vs-2013-update-2-rc\">ref3<\/a>)<\/li>\n<\/ul>\n<p>Read the release announcements by <a href=\"https:\/\/aka.ms\/soma-vs2013-update3\">Soma<\/a> and <a href=\"http:\/\/blogs.msdn.com\/b\/bharry\/\">Brian Harry<\/a> or learn more by checking out the <a href=\"http:\/\/www.visualstudio.com\/news\/2014-aug-4-vs\">Visual Studio 2013 Update 3 RTM release notes<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>As always, thanks to each of you for providing feedback and helping us to improve Visual C++.<\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Visual Studio 2013 Update 3 includes a number of fixes filed through Connect: Calling dispose on a WinRT object could cause a crash. Using uniform initialization with an overloaded equality operator results in an error. (ref1) Using {0} to initialize a struct causes an internal compiler error. Declaring a const variable sometimes results in a [&hellip;]<\/p>\n","protected":false},"author":264,"featured_media":35994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-413","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus"],"acf":[],"blog_post_summary":"<p>Visual Studio 2013 Update 3 includes a number of fixes filed through Connect: Calling dispose on a WinRT object could cause a crash. Using uniform initialization with an overloaded equality operator results in an error. (ref1) Using {0} to initialize a struct causes an internal compiler error. Declaring a const variable sometimes results in a [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/413","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\/264"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=413"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/413\/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=413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}