OpenKalman
Classes | Typedefs | Functions | Variables
common.hpp File Reference
#include "core-concepts.hpp"
Include dependency graph for common.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  OpenKalman::stdex::detail::common_ref< typename, typename, typename >
 
struct  OpenKalman::stdex::detail::common_ref< A &, B &, std::void_t< cond_res_cvref< A, B > > >
 
struct  OpenKalman::stdex::detail::common_ref< A &&, B &&, std::enable_if_t< convertible_to< A &&, common_ref_C< A, B > > and convertible_to< B &&, common_ref_C< A, B > > > >
 
struct  OpenKalman::stdex::detail::common_ref< A &&, B &, std::enable_if_t< convertible_to< A &&, common_ref_D< A, B > > > >
 
struct  OpenKalman::stdex::detail::common_ref< A &, B && >
 
struct  OpenKalman::stdex::detail::common_reference_impl< T1, T2, b, typename >
 
struct  OpenKalman::stdex::detail::common_reference_impl< T1 &, T2 &, 1, std::void_t< common_ref_t< T1 &, T2 & > > >
 
struct  OpenKalman::stdex::detail::common_reference_impl< T1 &&, T2 &&, 1, std::void_t< common_ref_t< T1 &&, T2 && > > >
 
struct  OpenKalman::stdex::detail::common_reference_impl< T1 &, T2 &&, 1, std::void_t< common_ref_t< T1 &, T2 && > > >
 
struct  OpenKalman::stdex::detail::common_reference_impl< T1 &&, T2 &, 1, std::void_t< common_ref_t< T1 &&, T2 & > > >
 
struct  OpenKalman::stdex::detail::common_reference_impl< T1, T2, 3, std::void_t< cond_res< T1, T2 > > >
 
struct  OpenKalman::stdex::detail::common_reference_impl< T1, T2, 4, std::void_t< std::common_type_t< T1, T2 > > >
 
struct  OpenKalman::stdex::detail::common_reference_impl< T1, T2, 5, void >
 
struct  OpenKalman::stdex::common_reference< T >
 
struct  OpenKalman::stdex::common_reference<>
 
struct  OpenKalman::stdex::common_reference< T >
 
struct  OpenKalman::stdex::detail::combine_common_reference< T1, T2, typename, Ts >
 
struct  OpenKalman::stdex::detail::combine_common_reference< T1, T2, std::void_t< typename common_reference_impl< T1, T2 >::type >, Ts... >
 
struct  OpenKalman::stdex::common_reference< T1, T2, Ts... >
 
struct  OpenKalman::stdex::detail::common_with_impl1< T, U, typename >
 
struct  OpenKalman::stdex::detail::common_with_impl1< T, U, std::enable_if_t<(same_as< typename std::common_type< T, U >::type, typename std::common_type< U, T >::type >)> >
 
struct  OpenKalman::stdex::detail::common_with_impl2< T, U, typename >
 
struct  OpenKalman::stdex::detail::common_with_impl2< T, U, std::void_t< decltype(static_cast< typename std::common_type< T, U >::type >(std::declval< T >())), decltype(static_cast< typename std::common_type< T, U >::type >(std::declval< U >()))> >
 
struct  OpenKalman::stdex::detail::common_with_impl3< T, U, typename >
 
struct  OpenKalman::stdex::detail::common_with_impl3< T, U, std::enable_if_t<(common_reference_with< std::add_lvalue_reference_t< typename std::common_type< T, U >::type >, common_reference_t< std::add_lvalue_reference_t< const T >, std::add_lvalue_reference_t< const U >>>)> >
 
struct  OpenKalman::stdex::detail::assignable_from_impl< LHS, RHS, typename >
 
struct  OpenKalman::stdex::detail::assignable_from_impl< LHS, RHS, std::enable_if_t< stdex::same_as< decltype(std::declval< LHS >()=std::declval< RHS && >()), LHS > > >
 
struct  OpenKalman::stdex::ranges::detail_swap::adl_swap_impl< Tp, Up, typename >
 
struct  OpenKalman::stdex::ranges::detail_swap::adl_swap_impl< Tp, Up, std::void_t< decltype(swap(static_cast< Tp && >(std::declval< Tp & >()), static_cast< Up && >(std::declval< Up & >())))> >
 
class  OpenKalman::stdex::ranges::detail_swap::swap_impl
 
struct  OpenKalman::stdex::detail::swappable_impl< T, U, typename >
 
struct  OpenKalman::stdex::detail::swappable_impl< T, U, std::void_t< decltype(stdex::ranges::swap(std::declval< T & >(), std::declval< U & >()))> >
 
struct  OpenKalman::stdex::detail::swappable_with_impl< T, U, typename >
 
struct  OpenKalman::stdex::detail::swappable_with_impl< T, U, std::void_t< decltype(stdex::ranges::swap(std::declval< T && >(), std::declval< U && >()))> >
 

Typedefs

template<typename From , typename To >
using OpenKalman::stdex::detail::copy_cv = std::conditional_t< std::is_const_v< From >, std::conditional_t< std::is_volatile_v< From >, const volatile To, const To >, std::conditional_t< std::is_volatile_v< From >, volatile To, To > >
 
template<typename A , typename B >
using OpenKalman::stdex::detail::cond_res = decltype(false ? std::declval< A(&)()>()() :std::declval< B(&)()>()())
 
template<typename A , typename B >
using OpenKalman::stdex::detail::cond_res_cvref = cond_res< copy_cv< A, B > &, copy_cv< B, A > & >
 
template<typename A , typename B >
using OpenKalman::stdex::detail::common_ref_t = typename common_ref< A, B >::type
 
template<typename A , typename B >
using OpenKalman::stdex::detail::common_ref_C = std::remove_reference_t< common_ref_t< A &, B & > > &&
 
template<typename A , typename B >
using OpenKalman::stdex::detail::common_ref_D = common_ref_t< const A &, B & >
 
template<typename... T>
using OpenKalman::stdex::common_reference_t = typename common_reference< T... >::type
 

Functions

template<typename Tp >
void OpenKalman::stdex::ranges::detail_swap::swap (Tp &, Tp &) noexcept=delete
 

Variables

template<typename T , typename U >
constexpr bool OpenKalman::stdex::common_reference_with
 
template<typename T , typename U >
constexpr bool OpenKalman::stdex::common_with
 
template<typename LHS , typename RHS >
constexpr bool OpenKalman::stdex::assignable_from
 
template<typename Tp >
constexpr bool OpenKalman::stdex::ranges::detail_swap::class_or_enum = std::is_class_v<Tp> or std::is_union_v<Tp> or std::is_enum_v<Tp>
 
template<typename Tp , typename Up >
constexpr bool OpenKalman::stdex::ranges::detail_swap::adl_swap
 
constexpr detail_swap::swap_impl OpenKalman::stdex::ranges::swap
 
template<typename T >
constexpr bool OpenKalman::stdex::swappable = detail::swappable_impl<T, T>::value
 
template<typename T , typename U >
constexpr bool OpenKalman::stdex::swappable_with
 

Variable Documentation

◆ adl_swap

template<typename Tp , typename Up >
constexpr bool OpenKalman::stdex::ranges::detail_swap::adl_swap
inline
Initial value:
=
(class_or_enum<std::remove_reference_t<Tp>> or class_or_enum<std::remove_reference_t<Up>>) and
constexpr bool value
T is a fixed or dynamic value that is reducible to a number.
Definition: value.hpp:45

◆ assignable_from

template<typename LHS , typename RHS >
constexpr bool OpenKalman::stdex::assignable_from
inline
Initial value:
=
std::is_lvalue_reference_v<LHS> and
stdex::common_reference_with<const std::remove_reference_t<LHS>&, const std::remove_reference_t<RHS>&> and
constexpr bool value
T is a fixed or dynamic value that is reducible to a number.
Definition: value.hpp:45

◆ common_reference_with

template<typename T , typename U >
constexpr bool OpenKalman::stdex::common_reference_with
inline
Initial value:
=
same_as<common_reference_t<T, U>, common_reference_t<U, T>> and
stdex::convertible_to<T, common_reference_t<T, U>> and
stdex::convertible_to<U, common_reference_t<T, U>>

◆ common_with

template<typename T , typename U >
constexpr bool OpenKalman::stdex::common_with
inline
Initial value:
=
stdex::common_reference_with<std::add_lvalue_reference_t<const T>, std::add_lvalue_reference_t<const U>> and
constexpr bool value
T is a fixed or dynamic value that is reducible to a number.
Definition: value.hpp:45

◆ swappable_with

template<typename T , typename U >
constexpr bool OpenKalman::stdex::swappable_with
inline
Initial value:
=
stdex::common_reference_with<T, U> and
constexpr bool value
T is a fixed or dynamic value that is reducible to a number.
Definition: value.hpp:45