Aaron Ballman
2015-Feb-17 15:39 UTC
[LLVMdev] Do we still need LLVM_HAS_INITIALIZER_LISTS?
On Mon, Feb 16, 2015 at 10:30 PM, David Majnemer <david.majnemer at gmail.com> wrote:> > > On Mon, Feb 16, 2015 at 3:56 PM, Justin Bogner <mail at justinbogner.com> > wrote: >> >> Currently, LLVM_HAS_INITIALIZER_LISTS is set based on >> >> __has_feature(cxx_generalized_initializers) && !defined(_MSC_VER) >> >> Based on the docs, we should be able to drop the _MSC_VER check now that >> we've moved to VS2013. Can somebody confirm that? >> > > MSDN claims that VS2013 supports braced initializer list syntax: > https://msdn.microsoft.com/en-us/library/dn387583.aspx > >> >> The other problem is that GCC doesn't recognize __has_feature, so this >> is essentially only enabled for clang. If we're keeping this check it >> should really check the GCC version as well - they've had these for >> quite a while now.I think we're safe to use it. I've made an experimental commit in r229502 to see if any of the bots complain, and will revert if they do. Otherwise, I think we're good to go. ~Aaron
Sebastian Redl
2015-Feb-18 12:23 UTC
[LLVMdev] Do we still need LLVM_HAS_INITIALIZER_LISTS?
On 2/17/2015 4:39 PM, Aaron Ballman wrote:> I think we're safe to use it. I've made an experimental commit in > r229502 to see if any of the bots complain, and will revert if they > do. Otherwise, I think we're good to go. >One specific thing doesn't work: in-class initializers with brace syntax: class Foo { Bar bar{1, 2, 3}; }; They disabled this due to a silent wrong-code bug. Sebastian
Aaron Ballman
2015-Feb-18 13:09 UTC
[LLVMdev] Do we still need LLVM_HAS_INITIALIZER_LISTS?
On Wed, Feb 18, 2015 at 7:23 AM, Sebastian Redl <sebastian.redl at getdesigned.at> wrote:> > On 2/17/2015 4:39 PM, Aaron Ballman wrote: >> >> I think we're safe to use it. I've made an experimental commit in >> r229502 to see if any of the bots complain, and will revert if they >> do. Otherwise, I think we're good to go. >> > One specific thing doesn't work: in-class initializers with brace syntax: > > class Foo > { > Bar bar{1, 2, 3}; > }; > > They disabled this due to a silent wrong-code bug.That's good to know, but also a coding style that we don't use (copy initialization using = is preferred to direct initialization using {}, from what I learned recently). We should document both things in our guidelines, though. Thanks! ~Aaron