OpenKalman
assignable.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) 2024 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 
17 #ifndef OPENKALMAN_ASSIGNABLE_HPP
18 #define OPENKALMAN_ASSIGNABLE_HPP
19 
20 
21 namespace OpenKalman::internal
22 {
27  template<typename To, typename From>
28 #ifdef __cpp_lib_concepts
29  concept assignable =
30 #else
31  constexpr bool element_gettable =
32 #endif
33  interface::assign_defined_for<To, To, From> or
34  interface::assign_defined_for<To, To, decltype(to_native_matrix<To>(std::declval<From>()))> or
35  std::is_assignable_v<To, From> or
36  std::is_assignable_v<To, decltype(to_native_matrix<To>(std::declval<From>()))>;
37 
38 
39 } // namespace OpenKalman::internal
40 
41 #endif //OPENKALMAN_ASSIGNABLE_HPP
constexpr bool element_gettable
Specifies that a type has components addressable by N indices.
Definition: element_gettable.hpp:33
Definition: basics.hpp:48