Date: Tue, 17 Jan 2017 13:37:27 -0600 From: Eric van Gyzen <vangyzen@FreeBSD.org> To: Benjamin Kaduk <bjkfbsd@gmail.com>, Ian Lepore <ian@freebsd.org> Cc: Maxim Sobolev <sobomax@freebsd.org>, Gleb Smirnoff <glebius@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "src-committers@freebsd.org" <src-committers@freebsd.org> Subject: Re: svn commit: r312296 - in head: lib/libc/sys sys/kern sys/netinet sys/netinet6 sys/sys tools/regression/sockets/udp_pingpong tools/regression/sockets/unix_cmsg Message-ID: <edcd83fe-5182-6fb0-6f4d-77994caada56@FreeBSD.org> In-Reply-To: <CAJ5_RoBQiAutpz3vqRbbW-_Pw7kna-8nmL53rH_yn70FdjjdUg@mail.gmail.com> References: <201701161746.v0GHkcPX071529@repo.freebsd.org> <20170117065231.GW2611@FreeBSD.org> <CAH7qZftckckygNG3HRqikiaGds6FsOedUR7AWKGi-PJg96FQjA@mail.gmail.com> <CAH7qZftsYAoBj7gFpOMHgT9a12N1yshAGY%2BkAEkpbTks7LL29Q@mail.gmail.com> <1484672262.86335.163.camel@freebsd.org> <CAJ5_RoBQiAutpz3vqRbbW-_Pw7kna-8nmL53rH_yn70FdjjdUg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 01/17/2017 11:48, Benjamin Kaduk wrote: > On Tue, Jan 17, 2017 at 10:57 AM, Ian Lepore <ian@freebsd.org > <mailto:ian@freebsd.org>> wrote: > > In my experience, enums are a superior way to define integer constants > (compared to #define), but they are pure poison as variable types in > APIs and structures because their size is a compiler implementation > choice. > > > Well, to some extent. For example, the amd64 sysV ABI says that enum > types are signed fourbyte, with a footnote that "C++ and some > implementations of C permit enums larger than an int. The underlying > type is bumped to an unsigned int, long int or unsigned long int, in > that order." And in C++11 and later, you can specify the exact type: enum color #if defined(__cplusplus) && __cplusplus >= 201103L : int #endif { blue, ... Eric
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?edcd83fe-5182-6fb0-6f4d-77994caada56>