OpenKalman
Public Member Functions | Protected Member Functions | List of all members
OpenKalman::internal::AdapterBase< Derived, NestedObject, LibraryObject > Struct Template Reference
Inheritance diagram for OpenKalman::internal::AdapterBase< Derived, NestedObject, LibraryObject >:
Inheritance graph
[legend]
Collaboration diagram for OpenKalman::internal::AdapterBase< Derived, NestedObject, LibraryObject >:
Collaboration graph
[legend]

Public Member Functions

template<typename T = NestedObject, std::enable_if_t< std::is_default_constructible< T >::value, int > = 0>
constexpr AdapterBase ()
 Default constructor.
 
template<typename Arg >
constexpr AdapterBase (Arg &&arg, typename std::enable_if< std::is_constructible< NestedObject, Arg &&>::value >::type *=0)
 Construct from a compatible indexible type.
 
constexpr NestedObject & nested_object () &
 Get the nested object.
 
constexpr const NestedObject & nested_object () const &
 
constexpr NestedObject && nested_object () &&
 
constexpr const NestedObject && nested_object () const &&
 
template<typename Indices , std::enable_if_t< values::scalar< decltype(get_component(std::declval< Derived &>(), std::declval< const Indices &>()))>, int > = 0>
constexpr auto operator[] (const Indices &indices) &
 Access a component at a set of indices. More...
 
template<typename Indices , std::enable_if_t< values::scalar< decltype(get_component(std::declval< Derived &&>(), std::declval< const Indices &>()))>, int > = 0>
constexpr auto operator[] (const Indices &indices) &&
 
template<typename Indices , std::enable_if_t< values::scalar< decltype(get_component(std::declval< const Derived &>(), std::declval< const Indices &>()))>, int > = 0>
constexpr auto operator[] (const Indices &indices) const &
 
template<typename Indices , std::enable_if_t< values::scalar< decltype(get_component(std::declval< const Derived &&>(), std::declval< const Indices &>()))>, int > = 0>
constexpr auto operator[] (const Indices &indices) const &&
 

Protected Member Functions

template<typename Arg >
constexpr AdapterBaseoperator= (Arg &&arg)
 Assign from another compatible indexible object.
 

Member Function Documentation

◆ nested_object() [1/3]

template<typename Derived, typename NestedObject, typename LibraryObject = NestedObject>
constexpr const NestedObject& OpenKalman::internal::AdapterBase< Derived, NestedObject, LibraryObject >::nested_object ( ) const &
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ nested_object() [2/3]

template<typename Derived, typename NestedObject, typename LibraryObject = NestedObject>
constexpr NestedObject&& OpenKalman::internal::AdapterBase< Derived, NestedObject, LibraryObject >::nested_object ( ) &&
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ nested_object() [3/3]

template<typename Derived, typename NestedObject, typename LibraryObject = NestedObject>
constexpr const NestedObject&& OpenKalman::internal::AdapterBase< Derived, NestedObject, LibraryObject >::nested_object ( ) const &&
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator[]() [1/4]

template<typename Derived, typename NestedObject, typename LibraryObject = NestedObject>
template<typename Indices , std::enable_if_t< values::scalar< decltype(get_component(std::declval< Derived &>(), std::declval< const Indices &>()))>, int > = 0>
constexpr auto OpenKalman::internal::AdapterBase< Derived, NestedObject, LibraryObject >::operator[] ( const Indices &  indices) &
inline

Access a component at a set of indices.

Returns
If writable_by_component<Derived, Indices>, the component can be directly assigned.

◆ operator[]() [2/4]

template<typename Derived, typename NestedObject, typename LibraryObject = NestedObject>
template<typename Indices , std::enable_if_t< values::scalar< decltype(get_component(std::declval< Derived &&>(), std::declval< const Indices &>()))>, int > = 0>
constexpr auto OpenKalman::internal::AdapterBase< Derived, NestedObject, LibraryObject >::operator[] ( const Indices &  indices) &&
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator[]() [3/4]

template<typename Derived, typename NestedObject, typename LibraryObject = NestedObject>
template<typename Indices , std::enable_if_t< values::scalar< decltype(get_component(std::declval< const Derived &>(), std::declval< const Indices &>()))>, int > = 0>
constexpr auto OpenKalman::internal::AdapterBase< Derived, NestedObject, LibraryObject >::operator[] ( const Indices &  indices) const &
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator[]() [4/4]

template<typename Derived, typename NestedObject, typename LibraryObject = NestedObject>
template<typename Indices , std::enable_if_t< values::scalar< decltype(get_component(std::declval< const Derived &&>(), std::declval< const Indices &>()))>, int > = 0>
constexpr auto OpenKalman::internal::AdapterBase< Derived, NestedObject, LibraryObject >::operator[] ( const Indices &  indices) const &&
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.


The documentation for this struct was generated from the following file: