OpenKalman
compares_with_pattern_collection.hpp
Go to the documentation of this file.
1 /* This file is part of OpenKalman, a header-only C++ library for
2  * Kalman filters and other recursive filters.
3  *
4  * Copyright (c) 2019-2026 Christopher Lee Ogden <ogden@gatech.edu>
5  *
6  * This Source Code Form is subject to the terms of the Mozilla Public
7  * License, v. 2.0. If a copy of the MPL was not distributed with this
8  * file, You can obtain one at https://mozilla.org/MPL/2.0/.
9  */
10 
16 #ifndef OPENKALMAN_COMPARES_WITH_PATTERN_COLLECTION_HPP
17 #define OPENKALMAN_COMPARES_WITH_PATTERN_COLLECTION_HPP
18 
19 #include "patterns/patterns.hpp"
22 
23 namespace OpenKalman
24 {
25 #ifndef __cpp_concepts
26  namespace detail
27  {
28  template<typename T, typename P, auto comp, applicability a, typename = void>
29  struct compares_with_pattern_collection_impl : std::false_type {};
30 
31  template<typename T, typename P, auto comp, applicability a>
32  struct compares_with_pattern_collection_impl<T, P, comp, a, std::enable_if_t<
33  patterns::collection_compares_with<typename pattern_collection_type_of<T>::type, P, comp, a>>>
34  : std::true_type {};
35  }
36 #endif
37 
38 
44  template<typename T, typename P, auto comp = &stdex::is_eq, applicability a = applicability::permitted>
45 #ifdef __cpp_concepts
47  indexible<T> and
48  patterns::collection_compares_with<pattern_collection_type_of_t<T>, P, comp, a>;
49 #else
50  constexpr bool compares_with_pattern_collection =
52 #endif
53 
54 }
55 
56 #endif
Definition for pattern_collection_type_of.
constexpr bool compares_with_pattern_collection
Compares the associated pattern collection of indexible T with pattern_collection D...
Definition: compares_with_pattern_collection.hpp:50
The root namespace for OpenKalman.
Definition: basics.hpp:34
Definition for indexible.
Definition: compares_with_pattern_collection.hpp:29