[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:
> 220.127.116.11.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: 18.104.22.168
> 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
> (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
CHANGES SINCE LAST ACTION
More information about the libcxx-commits