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++.
0 comments