Allow default member initializers in LLVM

Default member initializers (or non-static data member initializers if you like) are these things:
struct Foo {
int x = -1;
int y = 0xdeadbeef;
};

I’d like to use them, because I’m tired of updating out-of-line constructors to explicitly initialize all scalar members. See for example CodeGenFunction():
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.cpp?revision=235664&view=markup#l37

This feature is supported by MSVC 2013, Clang 3.0, and GCC 4.7, which together represent our platform support floor.

Any objections? If not, I’ll update http://llvm.org/docs/CodingStandards.html in a few days.

I’ll also put in a word recommending that these should only be used to initialize scalars to constant values. C++ is very flexible and will let you put lots of stuff here, but doing so is probably bad form.

+1

Eli

SGTM.

-Chris

Agreed, especially in LLVM project. And MSVC has problems with complex initializers: https://connect.microsoft.com/VisualStudio/feedback/details/807232/class-member-vector-initialization-list-unexpected-c-11

Thanks! I updated the coding standards in r236244.