OpenKalman
uniform_static_vector_space_descriptor_component_of.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-2023 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_UNIFORM_FIXED_VECTOR_SPACE_DESCRIPTOR_COMPONENT_OF_HPP
17 #define OPENKALMAN_UNIFORM_FIXED_VECTOR_SPACE_DESCRIPTOR_COMPONENT_OF_HPP
18 
22 
24 {
29 #ifdef __cpp_concepts
30  template<typename T>
31 #else
32  template<typename T, typename = void>
33 #endif
35 
36 
37 #ifdef __cpp_concepts
38  template<typename T>
39 #else
40  template<typename T, typename>
41 #endif
43 
44 
45 #ifdef __cpp_concepts
46  template<uniform_static_vector_space_descriptor T> requires euclidean_pattern<T>
48 #else
49  template<typename T>
50  struct uniform_static_vector_space_descriptor_component_of<T, std::enable_if_t<uniform_static_vector_space_descriptor<T> and euclidean_pattern<T>>>
51 #endif
52  {
54  };
55 
56 
57 #ifdef __cpp_concepts
58  template<uniform_static_vector_space_descriptor T> requires (not euclidean_pattern<T>)
60 #else
61  template<typename T>
62  struct uniform_static_vector_space_descriptor_component_of<T, std::enable_if_t<uniform_static_vector_space_descriptor<T> and not euclidean_pattern<T>>>
63 #endif
64  {
65  using CT = std::decay_t<decltype(internal::get_component_collection(std::declval<T>()))>;
67  };
68 
69 
73 #ifdef __cpp_concepts
74  template<uniform_static_vector_space_descriptor T>
75 #else
76  template<typename T>
77 #endif
79 
80 
81 } // namespace OpenKalman::coordinates
82 
83 #endif //OPENKALMAN_UNIFORM_FIXED_VECTOR_SPACE_DESCRIPTOR_COMPONENT_OF_HPP
Definition for coordinates::euclidean_pattern.
typename uniform_static_vector_space_descriptor_component_of< T >::type uniform_static_vector_space_descriptor_component_of_t
Helper template for uniform_static_vector_space_descriptor_component_of.
Definition: uniform_static_vector_space_descriptor_component_of.hpp:78
Definition for uniform_static_vector_space_descriptor.
Definition: tuple_reverse.hpp:103
Definition: compares_with.hpp:28
A structure representing the dimensions associated with of a particular index.
Definition: Dimensions.hpp:42
Definition: uniform_static_vector_space_descriptor_query.hpp:36
If T is a uniform_static_vector_space_descriptor, type is an alias for the uniform component...
Definition: uniform_static_vector_space_descriptor_component_of.hpp:34