[LLVMdev] Allow default member initializers in LLVM

Chris Lattner clattner at apple.com
Tue Apr 28 15:02:46 PDT 2015


> On Apr 28, 2015, at 2:41 PM, Reid Kleckner <rnk at google.com> wrote:
> 
> 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 <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 <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.

SGTM.

-Chris


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150428/688cd0eb/attachment.html>


More information about the llvm-dev mailing list