Menu
  • HOME
  • TAGS

Braced initialisation of std::map member compiler error

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...

When is the compiler allowed to optimize auto+brace style initialization?

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....

Why does passing a brace-initialized temporary by address require explicit casting to the same type?

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...

Brace-initialization of an array of structs in c++11

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...