[libcxx-commits] [PATCH] D96786: <ciso646> should provide defines for alternative operator representations

Yuriy Chernyshov via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Tue Feb 16 10:07:03 PST 2021

georgthegreat added a comment.

I have digged through C++ Working Draft and found the following:

> Zombie names [zombie.names]
> ...
> 4 The header names <ccomplex>, <ciso646>, <cstdalign>, <cstdbool>, and <ctgmath> are reserved for
> previous standardization.

> C.1.10 Clause 16: library introduction [diff.cpp17.library]
> ...
> 2 Affected subclause:
> Change: Remove vacuous C++ header files.
> Rationale: The empty headers implied a false requirement to achieve C compatibility with the C++ headers.
> Effect on original feature: A valid C++ 2017 program that #includes any of the following headers may
> fail to compile: <ccomplex>, <ciso646>, <cstdalign>, <cstdbool>, and <ctgmath>. To retain the same
> behavior:
> ...
> (2.3) — a #include of <ciso646>, <cstdalign>, or <cstdbool> can simply be removed.

This makes me think that it maybe better to generate `#error` instead of trying to workaround MSVC problem.

@mclow.lists, @ldionne, what do you think?

  rG LLVM Github Monorepo



More information about the libcxx-commits mailing list