Skip to content

Commit

Permalink
[libc++][NFC] Move concepts to a subheader.
Browse files Browse the repository at this point in the history
D103357 added some new concepts. Since the header `<concepts>` has moved
all its concepts to a separate header these new concepts feel out of
place. Move them to the appropriate header.

Reviewed By: #libc, Quuxplusone, ldionne

Differential Revision: https://reviews.llvm.org/D109075
  • Loading branch information
mordante committed Sep 2, 2021
1 parent cd6064b commit 1637921
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 22 deletions.
9 changes: 9 additions & 0 deletions libcxx/include/__concepts/arithmetic.h
Expand Up @@ -34,6 +34,15 @@ concept unsigned_integral = integral<_Tp> && !signed_integral<_Tp>;
template<class _Tp>
concept floating_point = is_floating_point_v<_Tp>;

// Concept helpers for the internal type traits for the fundamental types.

template <class _Tp>
concept __libcpp_unsigned_integer = __libcpp_is_unsigned_integer<_Tp>::value;
template <class _Tp>
concept __libcpp_signed_integer = __libcpp_is_signed_integer<_Tp>::value;
template <class _Tp>
concept __libcpp_floating_point = __libcpp_is_floating_point<_Tp>::value;

#endif // _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CONCEPTS)

_LIBCPP_END_NAMESPACE_STD
Expand Down
2 changes: 1 addition & 1 deletion libcxx/include/__format/format_arg.h
Expand Up @@ -10,12 +10,12 @@
#ifndef _LIBCPP___FORMAT_FORMAT_ARG_H
#define _LIBCPP___FORMAT_FORMAT_ARG_H

#include <__concepts/arithmetic.h>
#include <__config>
#include <__format/format_error.h>
#include <__format/format_fwd.h>
#include <__functional_base>
#include <__variant/monostate.h>
#include <concepts>
#include <string>
#include <string_view>

Expand Down
18 changes: 0 additions & 18 deletions libcxx/include/concepts
Expand Up @@ -152,28 +152,10 @@ namespace std {
#include <__concepts/swappable.h>
#include <__concepts/totally_ordered.h>
#include <__config>
#include <type_traits>
#include <version>

#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
#endif

_LIBCPP_BEGIN_NAMESPACE_STD

#if _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CONCEPTS)

// Concept helpers for the internal type traits for the fundamental types.

template <class _Tp>
concept __libcpp_unsigned_integer = __libcpp_is_unsigned_integer<_Tp>::value;
template <class _Tp>
concept __libcpp_signed_integer = __libcpp_is_signed_integer<_Tp>::value;
template <class _Tp>
concept __libcpp_floating_point = __libcpp_is_floating_point<_Tp>::value;

#endif // _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CONCEPTS)

_LIBCPP_END_NAMESPACE_STD

#endif // _LIBCPP_CONCEPTS
3 changes: 0 additions & 3 deletions libcxx/include/type_traits
Expand Up @@ -789,9 +789,6 @@ _LIBCPP_INLINE_VAR _LIBCPP_CONSTEXPR bool is_integral_v

#endif // __has_keyword(__is_integral)

// __libcpp_is_signed_integer, __libcpp_is_unsigned_integer
// <concepts> implements __libcpp_signed_integer, __libcpp_unsigned_integer

// [basic.fundamental] defines five standard signed integer types;
// __int128_t is an extended signed integer type.
// The signed and unsigned integer types, plus bool and the
Expand Down

0 comments on commit 1637921

Please sign in to comment.