[libcxx-commits] [clang] [flang] [libc] [mlir] [clang-tools-extra] [openmp] [libcxx] [compiler-rt] [lldb] [lld] [llvm] [libc++][format] P2637R3: Member `visit` (`std::basic_format_arg`) (PR #76449)

Hristo Hristov via libcxx-commits libcxx-commits at lists.llvm.org
Fri Jan 19 21:26:52 PST 2024


================
@@ -144,7 +144,8 @@ _LIBCPP_HIDE_FROM_ABI decltype(auto) __visit_format_arg(_Visitor&& __vis, basic_
   __libcpp_unreachable();
 }
 
-#  if _LIBCPP_STD_VER >= 26
+#  if _LIBCPP_STD_VER >= 26 && (!defined(_LIBCPP_COMPILER_CLANG_BASED) || _LIBCPP_CLANG_VER >= 1800)
----------------
H-G-Hristov wrote:

> I would go with with a new config variable `_LIBCPP_HAS_EXPLICIT_THIS_PARAMETER`
> 
> ```
> // Clang-18 has support for deducing this, but it does not set the FTM.
> #if defined(__cpp_explicit_this_parameter) || (defined(_LIBCPP_CLANG_VER ) &&_LIBCPP_CLANG_VER >= 1800))
> #  define _LIBCPP_HAS_EXPLICIT_THIS_PARAMETER
> #endif
> ```
> 
> This allows to easily add AppleClang when they support it. For the library we only support GCC and Clang based compilers.

Thank you! Done!

I think we also need to disable the test on Apple Clang, so I added:
`// UNSUPPORTED: clang-16 || clang-17 || apple-clang`

I hope this is the way.

https://github.com/llvm/llvm-project/pull/76449


More information about the libcxx-commits mailing list