On Mon, Dec 21, 2015 at 04:45:20PM -0800, Joe Stringer wrote:
> On 21 December 2015 at 16:11, Joe Stringer <j...@ovn.org> wrote:
> > On 21 December 2015 at 16:01, Ben Pfaff <b...@ovn.org> wrote:
> >> On Mon, Dec 21, 2015 at 03:56:40PM -0800, Joe Stringer wrote:
> >>> The previous definitions of these variables using designated
> >>> initializers caused a variety of issues when attempting to compile with
> >>> MSVC, particularly if including these headers from C++ code. By defining
> >>> them like this, we can appease MSVC and keep the definitions the same on
> >>> all platforms.
> >>>
> >>> VMware-BZ: #1517163
> >>> Suggested-by: Yin Lin <li...@vmware.com>
> >>> Signed-off-by: Joe Stringer <j...@ovn.org>
> >>
> >> Why not just use a new-enough MSVC?  According to this discussion of the
> >> topic, MSVC 2013 and newer support designated initializers in C++:
> >>         
> >> http://stackoverflow.com/questions/18731707/why-does-c11-not-support-designated-initializer-list-as-c99
> >
> > We have encountered this issue on MSVC2013u3 and MSVC2015u1. As far as
> > I can tell, the compiler will accept them if it is compiling a .c
> > file, but it fails if the header is included from a .cpp file.
> 
> This page seems to confirm that designated initializers are only
> supported in C mode:
> http://blogs.msdn.com/b/vcblog/archive/2015/04/29/c-11-14-17-features-in-vs-2015-rc.aspx

It is a shame that Microsoft doesn't bother to actually document any of
this, at least not accurately.  (Their one page on "extensions"
documents // comments as an extension, even though they've been part of
C for the past 16 years!)  Apparently we're supposed to refer to a blog
for documentation?

Ugh.  You'd better add a comment so that no one changes this back to a
sane definition.

Acked-by: Ben Pfaff <b...@ovn.org>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to