Bugs Fixed in Visual Studio 2013 Update 3

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 syntax error. (ref1)
  • Using std::make_shared for non-static data member initialization results in a template argument deduction error. (ref1, ref2)
  • Using std::copy with immediately constructed objects causes an internal compiler error in some conditions. (ref1)
  • Passing multiple immediately constructed objects to functions can cause internal compiler errors. (ref1)
  • The compiler incorrectly allows the trivial default constructor to be explicitly declared private via “= default”. (ref1)
  • 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. (ref1)
  • Using an initializer list with a struct that has a std::array member results in an error. (ref1)
  • Using nested initializer lists to construct nested vectors causes an internal compiler error. (ref1)
  • Initializing an array with empty curly braces causes an internal compiler error.
  • Using non-static data member initialization can cause incorrect rebuilds. (ref1, ref2)
  • Using initializer lists for non-static data member initialization results in errors. (ref1)
  • Using non-static data member initialization with empty braces causes an internal compiler error. (ref1, ref2)
  • Using a fully qualified name results in template errors.
  • Specifying a templated default function parameter results in errors if the function is in a namespace. (ref1, ref2)
  • Using ::template can cause an incorrect error.
  • Using variadic templates sometimes results in errors. (ref1)
  • Explicitly using a variadic cast operator causes an internal compiler error. (ref1)
  • Casting a function pointer defined using variadic templates causes an internal compiler error. (ref1)
  • A ‘using’ declaration can cause “failed to specialize function template” errors. (ref1)
  • Variadic templates can cause internal compiler errors. (ref1)
  • Using std::forward with variadic templates can cause an internal compiler error. (ref1)
  • Using variadic templates with dependent types that start :: results in errors. (ref1)
  • Calling a varargs function with incorrect parameters can cause internal compiler errors.
  • Calling a varargs function with a unrecognized symbol causes an internal compiler error. (ref1, ref2, ref3, ref4, ref5)
  • Using uniform initialization directly in a return statement can cause internal compiler errors. (ref1, ref2)
  • Malformed operator definitions can cause internal compiler errors. (ref1, ref2)
  • Cast operator declarations that use undeclared symbols can cause internal compiler errors. (ref1, ref2)
  • Malformed reference definitions can cause internal compiler errors. (ref1, ref2)
  • Using alias templates with std::enable_if can cause internal compiler errors. (ref1, ref2, ref3)

Read the release announcements by Soma and Brian Harry or learn more by checking out the Visual Studio 2013 Update 3 RTM release notes.

 

As always, thanks to each of you for providing feedback and helping us to improve Visual C++.