[PATCH] D128619: [Clang] Implement P0848 (Conditionally Trivial Special Member Functions)

Corentin Jabot via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Aug 21 23:44:37 PDT 2022


cor3ntin added inline comments.


================
Comment at: clang/lib/Frontend/InitPreprocessor.cpp:677
     //Builder.defineMacro("__cpp_aggregate_paren_init", "201902L");
-    Builder.defineMacro("__cpp_concepts", "201907L");
+    Builder.defineMacro("__cpp_concepts", "202002L");
     Builder.defineMacro("__cpp_conditional_explicit", "201806L");
----------------
royjacobson wrote:
> aaron.ballman wrote:
> > Does any of the not-yet-implemented bits (including from the DRs) impact the ability to use conditionally trivial special member functions? If so, we might want to be careful about aggressively bumping this value. (It's more palatable for us to come back and bump the value later than it is for us to claim we implement something fully when we know we don't -- the goal of the feature test macros is so that users don't have to resort to compiler version checks, which is what users have to use when they fall into that "not fully implemented" space.)
> I don't think they're very significant, and the benefits of enabling it seem large enough for me - for example, std::expected works with libstdc++ and passes their unit tests but is gated by this macro.
> 
> We still have a non-trivial amount of concept bugs to go over, but I support enabling this.
> 
I think it's better to be conservative, It's the lesser of two not great options.
I'm hoping we can get to fix the issues in the clang 16 cycle , but in the meantime we should not claim conformance if we are not, in fact, conforming.


================
Comment at: clang/www/cxx_status.html:930
         <td><a href="https://wg21.link/p0848r3">P0848R3</a></td>
-        <td rowspan="1" class="none" align="center">No</td>
+        <td rowspan="1" class="unreleased" align="center">Clang 16 <a href="#p0848">(12)</a></td>
       </tr>
----------------
royjacobson wrote:
> aaron.ballman wrote:
> > FWIW, the way we've started handling this in recent history is to use "partial" and a details tag instead of a footnote, as in: https://github.com/llvm/llvm-project/blob/main/clang/www/cxx_status.html#L915.
> It felt a bit too long of an explanation to put in the tiny table box, but I don't feel very strongly about it either way.
I agree with Aaron. 
I think it's better to be consistent, the column resize when the details are expanded.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D128619



More information about the cfe-commits mailing list