c++,c++11,stdmap,brace-initialization
Visual C++ 2013 is known to be buggy with its handling of list initialization in non-static data member initializers and constructor member initializer lists. It was so badly broken - in some cases causing silent bad codegen - that they simply made it a compiler error in all cases in...
c++,visual-studio-2013,auto,brace-initialization
the standard is very clear as you mentioned before, indicating that this is a bug in the cl-compiler. You never can be sure, though if one compiler is saying something and all others disagree, I expect that this would be one of the many non-standard-compliant implementations of the MSVC compiler....
c++,c++11,visual-studio-2013,casting,brace-initialization
template<class T> T& as_lvalue(T&& t){return t;} // optional, blocks you being able to call as_lvalue on an lvalue: template<class T> void as_lvalue(T&)=delete; will solve your problem using legal C++. SomeVeryVerboseFunctionName(&as_lvalue(TEMP{0,1,2})); in a sense, as_lvalue is an inverse-move. You could call it unmove, but that would get confusing. Taking the address...
linux,c++11,gcc,brace-initialization
An internal compiler error is always a compiler bug, and says nothing about whether the code is valid. If the code is invalid, the compiler is supposed to give an error message telling you what's wrong with the code. An internal compiler error only tells you what's wrong with the...