tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Expose max_align_t unconditionally



On Mon, Mar 09, 2020 at 02:49:23PM -0400, Greg Troxel wrote:
> I am not really following the issue, but I don't understand why what the
> default C++ sublanguage is matters.  It would seem that behavior should
> be correct for any --std passed to compilers, per that sublanguages's
> specification, and what you get by default is just what happens to you
> if you don't pass --std.  (And I basically think a  build that does not
> pass an explicit --std is buggy, but that's a separate issue.)

The problem is that this c++ lib does not support compiling with -std=
for standards < C++11 (IIUC).

This is pretty stupid, but IMHO no big deal. We can

 - expose max_align_t (bogusly) for older C++ versions and hope that every
   user of this combination is lucky with other parts of the lib

 - just not support (i.e. #error) on older C++ standard compiles

 - wait for Jörg to win the upstream battle and go with the fixed libc++

As a C++ developer in real life I would not expect much lossage from the
#error variant - most things that really require older standards will have
trouble anyway, and patching the few pkgsrc things that eroneously force
some older C++ version (but actually do not care) is not a big deal.

But I may be overoptimistic ;-)

Michal, what I don't understand: what is the exact failure mode (i.e. what
is a minimal sample to trigger the lossage)? Is max_align_t used in some
header included everywhere, or just specific rarely used headers? Or is
for example our in tree groff version not compilable with that libc++?

Martin


Home | Main Index | Thread Index | Old Index