cb424d7448
verify-patch-sanity.py validates every active recipe .patch has internally- consistent hunk line counts — catching the 'malformed patch at line N' failure at commit/CI/preflight time instead of hours into a cook. This cycle hit that class three times (qtwaylandscanner, sddm, xwayland), each only discovered when cookbook tried to apply the patch. Running it across the repo found 29 latent malformed patches (validated against GNU patch: e.g. relibc/P3-sysv-ipc reproduces 'malformed patch at line 22'). They were harmless only because they sit in vendored recipes (baked, not re- applied) — but would fail on any version-bump re-derivation. --fix recounts the hunk headers (body untouched) and repaired all 29. Wired into build-preflight.sh (Phase 1.0D) and redbear-ci.yml, with a unit test (test-patch-sanity.sh). Skips archived/legacy trees and unvalidatable formats (empty placeholders, bare-@@ git hunks).
175 lines
5.2 KiB
C++
175 lines
5.2 KiB
C++
// -*- C++ -*-
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef _LIBCPP_CONCEPTS
|
|
#define _LIBCPP_CONCEPTS
|
|
|
|
/*
|
|
concepts synopsis
|
|
namespace std {
|
|
// [concepts.lang], language-related concepts
|
|
// [concept.same], concept same_as
|
|
template<class T, class U>
|
|
concept same_as = see below;
|
|
|
|
// [concept.derived], concept derived_from
|
|
template<class Derived, class Base>
|
|
concept derived_from = see below;
|
|
|
|
// [concept.convertible], concept convertible_to
|
|
template<class From, class To>
|
|
concept convertible_to = see below;
|
|
|
|
// [concept.commonref], concept common_reference_with
|
|
template<class T, class U>
|
|
concept common_reference_with = see below;
|
|
|
|
// [concept.common], concept common_with
|
|
template<class T, class U>
|
|
concept common_with = see below;
|
|
|
|
// [concepts.arithmetic], arithmetic concepts
|
|
template<class T>
|
|
concept integral = see below;
|
|
template<class T>
|
|
concept signed_integral = see below;
|
|
template<class T>
|
|
concept unsigned_integral = see below;
|
|
template<class T>
|
|
concept floating_point = see below;
|
|
|
|
// [concept.assignable], concept assignable_from
|
|
template<class LHS, class RHS>
|
|
concept assignable_from = see below;
|
|
|
|
// [concept.swappable], concept swappable
|
|
namespace ranges {
|
|
inline namespace unspecified {
|
|
inline constexpr unspecified swap = unspecified;
|
|
}
|
|
}
|
|
template<class T>
|
|
concept swappable = see below;
|
|
template<class T, class U>
|
|
concept swappable_with = see below;
|
|
|
|
// [concept.destructible], concept destructible
|
|
template<class T>
|
|
concept destructible = see below;
|
|
|
|
// [concept.constructible], concept constructible_from
|
|
template<class T, class... Args>
|
|
concept constructible_from = see below;
|
|
|
|
// [concept.default.init], concept default_initializable
|
|
template<class T>
|
|
concept default_initializable = see below;
|
|
|
|
// [concept.moveconstructible], concept move_constructible
|
|
template<class T>
|
|
concept move_constructible = see below;
|
|
|
|
// [concept.copyconstructible], concept copy_constructible
|
|
template<class T>
|
|
concept copy_constructible = see below;
|
|
|
|
// [concept.equalitycomparable], concept equality_comparable
|
|
template<class T>
|
|
concept equality_comparable = see below;
|
|
template<class T, class U>
|
|
concept equality_comparable_with = see below;
|
|
|
|
// [concept.totallyordered], concept totally_ordered
|
|
template<class T>
|
|
concept totally_ordered = see below;
|
|
template<class T, class U>
|
|
concept totally_ordered_with = see below;
|
|
|
|
// [concepts.object], object concepts
|
|
template<class T>
|
|
concept movable = see below;
|
|
template<class T>
|
|
concept copyable = see below;
|
|
template<class T>
|
|
concept semiregular = see below;
|
|
template<class T>
|
|
concept regular = see below;
|
|
|
|
// [concepts.callable], callable concepts
|
|
// [concept.invocable], concept invocable
|
|
template<class F, class... Args>
|
|
concept invocable = see below;
|
|
|
|
// [concept.regularinvocable], concept regular_invocable
|
|
template<class F, class... Args>
|
|
concept regular_invocable = see below;
|
|
|
|
// [concept.predicate], concept predicate
|
|
template<class F, class... Args>
|
|
concept predicate = see below;
|
|
|
|
// [concept.relation], concept relation
|
|
template<class R, class T, class U>
|
|
concept relation = see below;
|
|
|
|
// [concept.equiv], concept equivalence_relation
|
|
template<class R, class T, class U>
|
|
concept equivalence_relation = see below;
|
|
|
|
// [concept.strictweakorder], concept strict_weak_order
|
|
template<class R, class T, class U>
|
|
concept strict_weak_order = see below;
|
|
}
|
|
|
|
*/
|
|
|
|
#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
|
|
# include <__cxx03/__config>
|
|
#else
|
|
# include <__config>
|
|
|
|
# if _LIBCPP_STD_VER >= 20
|
|
# include <__concepts/arithmetic.h>
|
|
# include <__concepts/assignable.h>
|
|
# include <__concepts/boolean_testable.h>
|
|
# include <__concepts/class_or_enum.h>
|
|
# include <__concepts/common_reference_with.h>
|
|
# include <__concepts/common_with.h>
|
|
# include <__concepts/constructible.h>
|
|
# include <__concepts/convertible_to.h>
|
|
# include <__concepts/copyable.h>
|
|
# include <__concepts/derived_from.h>
|
|
# include <__concepts/destructible.h>
|
|
# include <__concepts/different_from.h>
|
|
# include <__concepts/equality_comparable.h>
|
|
# include <__concepts/invocable.h>
|
|
# include <__concepts/movable.h>
|
|
# include <__concepts/predicate.h>
|
|
# include <__concepts/regular.h>
|
|
# include <__concepts/relation.h>
|
|
# include <__concepts/same_as.h>
|
|
# include <__concepts/semiregular.h>
|
|
# include <__concepts/swappable.h>
|
|
# include <__concepts/totally_ordered.h>
|
|
# endif // _LIBCPP_STD_VER >= 20
|
|
|
|
# include <version>
|
|
|
|
# if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
|
|
# include <cstddef>
|
|
# include <type_traits>
|
|
# endif
|
|
|
|
# if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
# pragma GCC system_header
|
|
# endif
|
|
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
|
|
|
|
#endif // _LIBCPP_CONCEPTS
|