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

Public Member Functions

constexpr AdapterBase ()=default
 Default constructor.
 
template<typename Arg >
constexpr AdapterBase (Arg &&arg)
 Construct from the nested type.
 
constexpr Nested & nested_object () &
 Get the nested object.
 
constexpr const Nested & nested_object () const &
 
constexpr Nested && nested_object () &&
 
constexpr const Nested && nested_object () const &&
 
template<typename... I, std::enable_if_t< values::value< decltype(access(std::declval< Derived &>(), std::declval< I >()...))>, int > = 0>
decltype(auto) constexpr operator[] (I &&...i) &
 Access a component using a collection or pack of indices.
 
template<typename... I, std::enable_if_t< values::value< decltype(access(std::declval< const Derived &>(), std::declval< I >()...))>, int > = 0>
decltype(auto) constexpr operator[] (I &&...i) const &
 
template<typename... I, std::enable_if_t< values::value< decltype(access(std::declval< Derived &&>(), std::declval< I >()...))>, int > = 0>
decltype(auto) constexpr operator[] (I &&...i) &&
 
template<typename... I, std::enable_if_t< values::value< decltype(access(std::declval< const Derived &&>(), std::declval< I >()...))>, int > = 0>
decltype(auto) constexpr operator[] (I &&...i) const &&
 

Member Function Documentation

◆ nested_object() [1/3]

template<typename Derived, typename Nested, typename LibraryObject = Nested>
constexpr const Nested& OpenKalman::internal::AdapterBase< Derived, Nested, 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 Nested, typename LibraryObject = Nested>
constexpr Nested&& OpenKalman::internal::AdapterBase< Derived, Nested, 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 Nested, typename LibraryObject = Nested>
constexpr const Nested&& OpenKalman::internal::AdapterBase< Derived, Nested, 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/3]

template<typename Derived, typename Nested, typename LibraryObject = Nested>
template<typename... I, std::enable_if_t< values::value< decltype(access(std::declval< const Derived &>(), std::declval< I >()...))>, int > = 0>
decltype(auto) constexpr OpenKalman::internal::AdapterBase< Derived, Nested, LibraryObject >::operator[] ( I &&...  i) 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[]() [2/3]

template<typename Derived, typename Nested, typename LibraryObject = Nested>
template<typename... I, std::enable_if_t< values::value< decltype(access(std::declval< Derived &&>(), std::declval< I >()...))>, int > = 0>
decltype(auto) constexpr OpenKalman::internal::AdapterBase< Derived, Nested, LibraryObject >::operator[] ( I &&...  i) &&
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/3]

template<typename Derived, typename Nested, typename LibraryObject = Nested>
template<typename... I, std::enable_if_t< values::value< decltype(access(std::declval< const Derived &&>(), std::declval< I >()...))>, int > = 0>
decltype(auto) constexpr OpenKalman::internal::AdapterBase< Derived, Nested, LibraryObject >::operator[] ( I &&...  i) 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: