OpenKalman
Classes | Functions
movable_wrapper.hpp File Reference
#include <functional>
#include "basics/compatibility/language-features.hpp"
#include "collections/concepts/tuple_like.hpp"
Include dependency graph for movable_wrapper.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  OpenKalman::collections::internal::movable_wrapper< T, typename >
 
struct  OpenKalman::collections::internal::movable_wrapper< T & >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
struct  OpenKalman::collections::internal::movable_wrapper< T, std::enable_if_t< not std::is_lvalue_reference_v< T > and tuple_like< T > and not movable< T > > >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
struct  OpenKalman::collections::internal::maybe_tuple_size< T, typename >
 
struct  OpenKalman::collections::internal::maybe_tuple_size< T, std::void_t< decltype(std::tuple_size< T >::value)> >
 
struct  OpenKalman::collections::internal::maybe_tuple_element< i, T, typename >
 
struct  OpenKalman::collections::internal::maybe_tuple_element< i, T, std::void_t< typename std::tuple_element< i, T >::type > >
 
struct  std::tuple_size< OpenKalman::collections::internal::movable_wrapper< Tup > >
 
struct  std::tuple_element< i, OpenKalman::collections::internal::movable_wrapper< Tup > >
 

Functions

template<typename T >
 OpenKalman::collections::internal::movable_wrapper (T &&) -> movable_wrapper< T >
 deduction guide
 
template<std::size_t i, typename T , std::enable_if_t< tuple_like< T >, int > = 0>
decltype(auto) constexpr OpenKalman::collections::internal::get (movable_wrapper< T > &arg) noexcept
 If a movable_wrapper is tuple_like, get its element i. More...
 
template<std::size_t i, typename T , std::enable_if_t< tuple_like< T >, int > = 0>
decltype(auto) constexpr OpenKalman::collections::internal::get (const movable_wrapper< T > &arg) noexcept
 
template<std::size_t i, typename T , std::enable_if_t< tuple_like< T >, int > = 0>
decltype(auto) constexpr OpenKalman::collections::internal::get (movable_wrapper< T > &&arg) noexcept
 
template<std::size_t i, typename T , std::enable_if_t< tuple_like< T >, int > = 0>
decltype(auto) constexpr OpenKalman::collections::internal::get (const movable_wrapper< T > &&arg) noexcept
 
template<typename T , std::enable_if_t< std::is_convertible< decltype(std::declval< const movable_wrapper< T > &>().get()==std::declval< const movable_wrapper< T > &>().get()), bool >::value, int > = 0>
constexpr bool OpenKalman::collections::internal::operator== (const movable_wrapper< T > &lhs, const movable_wrapper< T > &rhs) noexcept
 
template<typename T , std::enable_if_t<(not std::is_const_v< T >) and std::is_convertible< decltype(std::declval< const movable_wrapper< T > &>().get()==std::declval< movable_wrapper< T > &>().get()), bool >::value, int > = 0>
constexpr bool OpenKalman::collections::internal::operator== (const movable_wrapper< T > &lhs, const movable_wrapper< const T > &rhs) noexcept
 
template<typename T , std::enable_if_t<(not std::is_const_v< T >) and std::is_convertible< decltype(std::declval< movable_wrapper< T > &>().get()==std::declval< movable_wrapper< T > &>().get()), bool >::value, int > = 0>
constexpr bool OpenKalman::collections::internal::operator== (const movable_wrapper< const T > &lhs, const movable_wrapper< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_convertible< decltype(std::declval< movable_wrapper< T > &>().get()==std::declval< const T &>()), bool >::value, int > = 0>
constexpr bool OpenKalman::collections::internal::operator== (const movable_wrapper< T > &lhs, const T &ref) noexcept
 
template<typename T , std::enable_if_t< std::is_convertible< decltype(std::declval< const T &>()==std::declval< movable_wrapper< T > &>().get()), bool >::value, int > = 0>
constexpr bool OpenKalman::collections::internal::operator== (const T &ref, const movable_wrapper< T > &lhs) noexcept
 
template<typename T , std::enable_if_t< std::is_convertible< decltype(std::declval< const movable_wrapper< T > &>().get()==std::declval< const movable_wrapper< T > &>().get()), bool >::value, int > = 0>
constexpr bool OpenKalman::collections::internal::operator!= (const movable_wrapper< T > &lhs, const movable_wrapper< T > &rhs) noexcept
 
template<typename T , std::enable_if_t<(not std::is_const_v< T >) and std::is_convertible< decltype(std::declval< movable_wrapper< T > &>().get() !=std::declval< movable_wrapper< T > &>().get()), bool >::value, int > = 0>
constexpr bool OpenKalman::collections::internal::operator!= (const movable_wrapper< T > &lhs, const movable_wrapper< const T > &rhs) noexcept
 
template<typename T , std::enable_if_t<(not std::is_const_v< T >) and std::is_convertible< decltype(std::declval< movable_wrapper< T > &>().get() !=std::declval< movable_wrapper< T > &>().get()), bool >::value, int > = 0>
constexpr bool OpenKalman::collections::internal::operator!= (const movable_wrapper< const T > &lhs, const movable_wrapper< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_convertible< decltype(std::declval< movable_wrapper< T > &>().get() !=std::declval< const T &>()), bool >::value, int > = 0>
constexpr bool OpenKalman::collections::internal::operator!= (const movable_wrapper< T > &lhs, const T &ref) noexcept
 
template<typename T , std::enable_if_t< std::is_convertible< decltype(std::declval< const T &>() !=std::declval< movable_wrapper< T > &>().get()), bool >::value, int > = 0>
constexpr bool OpenKalman::collections::internal::operator!= (const T &ref, const movable_wrapper< T > &lhs) noexcept
 
template<typename T , std::enable_if_t< std::is_convertible< decltype(std::declval< const movable_wrapper< T > &>().get()==std::declval< const movable_wrapper< T > &>().get()), bool >::value, int > = 0>
constexpr bool OpenKalman::collections::internal::operator< (const movable_wrapper< T > &lhs, const movable_wrapper< T > &rhs) noexcept
 
template<typename T >
constexpr bool OpenKalman::collections::internal::operator< (const movable_wrapper< T > &lhs, const movable_wrapper< const T > &rhs) noexcept
 
template<typename T >
constexpr bool OpenKalman::collections::internal::operator< (const movable_wrapper< const T > &lhs, const movable_wrapper< T > &rhs) noexcept
 
template<typename T >
constexpr bool OpenKalman::collections::internal::operator< (const movable_wrapper< T > &lhs, const T &ref) noexcept
 
template<typename T >
constexpr bool OpenKalman::collections::internal::operator< (const T &ref, const movable_wrapper< T > &lhs) noexcept
 
template<typename T , std::enable_if_t< std::is_convertible< decltype(std::declval< const movable_wrapper< T > &>().get()==std::declval< const movable_wrapper< T > &>().get()), bool >::value, int > = 0>
constexpr bool OpenKalman::collections::internal::operator> (const movable_wrapper< T > &lhs, const movable_wrapper< T > &rhs) noexcept
 
template<typename T , std::enable_if_t<(not std::is_const_v< T >) and std::is_convertible< decltype(std::declval< movable_wrapper< T > &>().get() > std::declval< movable_wrapper< T > &>().get()), bool >::value , int >
constexpr bool OpenKalman::collections::internal::operator> (const movable_wrapper< T > &lhs, const movable_wrapper< const T > &rhs) noexcept
 
template<typename T , std::enable_if_t<(not std::is_const_v< T >) and std::is_convertible< decltype(std::declval< movable_wrapper< T > &>().get() > std::declval< movable_wrapper< T > &>().get()), bool >::value , int >
constexpr bool OpenKalman::collections::internal::operator> (const movable_wrapper< const T > &lhs, const movable_wrapper< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_convertible< decltype(std::declval< movable_wrapper< T > &>().get() > std::declval< const T &>()), bool >::value , int >
constexpr bool OpenKalman::collections::internal::operator> (const movable_wrapper< T > &lhs, const T &ref) noexcept
 
template<typename T , std::enable_if_t< std::is_convertible< decltype(std::declval< const T &>() > std::declval< movable_wrapper< T > &>().get()), bool >::value , int >
constexpr bool OpenKalman::collections::internal::operator> (const T &ref, const movable_wrapper< T > &lhs) noexcept
 
template<typename T , std::enable_if_t< std::is_convertible< decltype(std::declval< const movable_wrapper< T > &>().get()==std::declval< const movable_wrapper< T > &>().get()), bool >::value, int > = 0>
constexpr bool OpenKalman::collections::internal::operator<= (const movable_wrapper< T > &lhs, const movable_wrapper< T > &rhs) noexcept
 
template<typename T >
constexpr bool OpenKalman::collections::internal::operator<= (const movable_wrapper< T > &lhs, const movable_wrapper< const T > &rhs) noexcept
 
template<typename T >
constexpr bool OpenKalman::collections::internal::operator<= (const movable_wrapper< const T > &lhs, const movable_wrapper< T > &rhs) noexcept
 
template<typename T >
constexpr bool OpenKalman::collections::internal::operator<= (const movable_wrapper< T > &lhs, const T &ref) noexcept
 
template<typename T >
constexpr bool OpenKalman::collections::internal::operator<= (const T &ref, const movable_wrapper< T > &lhs) noexcept
 
template<typename T , std::enable_if_t< std::is_convertible< decltype(std::declval< const movable_wrapper< T > &>().get()==std::declval< const movable_wrapper< T > &>().get()), bool >::value, int > = 0>
constexpr bool OpenKalman::collections::internal::operator>= (const movable_wrapper< T > &lhs, const movable_wrapper< T > &rhs) noexcept
 
template<typename T , std::enable_if_t<(not std::is_const_v< T >) and std::is_convertible< decltype(std::declval< movable_wrapper< T > &>().get() >=std::declval< movable_wrapper< T > &>().get()), bool >::value , int >
constexpr bool OpenKalman::collections::internal::operator>= (const movable_wrapper< T > &lhs, const movable_wrapper< const T > &rhs) noexcept
 
template<typename T , std::enable_if_t<(not std::is_const_v< T >) and std::is_convertible< decltype(std::declval< movable_wrapper< T > &>().get() >=std::declval< movable_wrapper< T > &>().get()), bool >::value , int >
constexpr bool OpenKalman::collections::internal::operator>= (const movable_wrapper< const T > &lhs, const movable_wrapper< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_convertible< decltype(std::declval< movable_wrapper< T > &>().get() >=std::declval< const T &>()), bool >::value , int >
constexpr bool OpenKalman::collections::internal::operator>= (const movable_wrapper< T > &lhs, const T &ref) noexcept
 
template<typename T , std::enable_if_t< std::is_convertible< decltype(std::declval< const T &>() >=std::declval< movable_wrapper< T > &>().get()), bool >::value , int >
constexpr bool OpenKalman::collections::internal::operator>= (const T &ref, const movable_wrapper< T > &lhs) noexcept
 

Function Documentation

◆ get()

template<std::size_t i, typename T , std::enable_if_t< tuple_like< T >, int > = 0>
decltype(auto) constexpr OpenKalman::collections::internal::get ( movable_wrapper< T > &  arg)
noexcept

If a movable_wrapper is tuple_like, get its element i.

Template Parameters
iAn index to the element