[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:

> 16.4.5.3.2 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: 16.4.2.3
> 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?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D96786/new/

https://reviews.llvm.org/D96786



More information about the libcxx-commits mailing list