aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/cxxsupp/libcxxmsvc/.yandex_meta/patches/07-concepts-arithmetic.patch
blob: 87a531cd4f18ed5dda3365425e32f745c3ee6218 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
diff --git a/include/__concepts/arithmetic.h b/include/__concepts/arithmetic.h
index f86908c..e1ec8fc 100644
--- a/include/__concepts/arithmetic.h
+++ b/include/__concepts/arithmetic.h
@@ -39,6 +39,8 @@ concept floating_point = is_floating_point_v<_Tp>;
 template <class _Tp>
 concept __libcpp_unsigned_integer = __libcpp_is_unsigned_integer<_Tp>::value;
 template <class _Tp>
+concept __libcpp_not_integral = !is_integral_v<_Tp>;
+template <class _Tp>
 concept __libcpp_signed_integer = __libcpp_is_signed_integer<_Tp>::value;
 
 #endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
diff --git a/include/__format/format_arg.h b/include/__format/format_arg.h
index 5e1565b..443c9e3 100644
--- a/include/__format/format_arg.h
+++ b/include/__format/format_arg.h
@@ -250,7 +250,7 @@ private:
   requires is_void_v<_Tp> _LIBCPP_HIDE_FROM_ABI explicit basic_format_arg(_Tp* __p) noexcept
       : __ptr(__p), __type_(__format::__arg_t::__ptr) {}
 
-  template <class _Tp>
+  template <__libcpp_not_integral _Tp>
   _LIBCPP_HIDE_FROM_ABI explicit basic_format_arg(const _Tp& __v) noexcept
       : __handle(__v), __type_(__format::__arg_t::__handle) {}
 };