iDynTree/Span.h file

Namespaces

namespace iDynTree
namespace iDynTree::SpanUtils
namespace iDynTree::details

Classes

template<typename... Ts>
struct iDynTree::SpanUtils::make_void
template<typename T, typename = void>
struct iDynTree::SpanUtils::is_value_defined
template<typename T>
struct iDynTree::SpanUtils::is_value_defined<T, void_t<typename T::value_type>>
template<typename T, typename = void>
struct iDynTree::SpanUtils::is_element_defined
template<typename T>
struct iDynTree::SpanUtils::is_element_defined<T, void_t<typename T::element_type>>
template<typename T, typename = void>
struct iDynTree::SpanUtils::has_data_method
template<typename T>
struct iDynTree::SpanUtils::has_data_method<T, void_t<decltype(std::declval<T>().data())>>
template<typename T, typename = void>
struct iDynTree::SpanUtils::has_size_method
template<typename T>
struct iDynTree::SpanUtils::has_size_method<T, void_t<decltype(std::declval<T>().size())>>
template<class T>
struct iDynTree::details::is_span_oracle
template<class ElementType, std::ptrdiff_t Extent>
struct iDynTree::details::is_span_oracle<iDynTree::Span<ElementType, Extent>>
template<class T>
struct iDynTree::details::is_span
template<class T>
struct iDynTree::details::is_std_array_oracle
template<class ElementType, std::size_t Extent>
struct iDynTree::details::is_std_array_oracle<std::array<ElementType, Extent>>
template<class T>
struct iDynTree::details::is_std_array
template<std::ptrdiff_t From, std::ptrdiff_t To>
struct iDynTree::details::is_allowed_extent_conversion
template<class From, class To>
struct iDynTree::details::is_allowed_element_type_conversion
template<class Span, bool IsConst>
class iDynTree::details::span_iterator
template<std::ptrdiff_t Ext>
class iDynTree::details::extent_type
template<>
class iDynTree::details::extent_type<dynamic_extent>
template<class ElementType, std::ptrdiff_t Extent, std::ptrdiff_t Offset, std::ptrdiff_t Count>
struct iDynTree::details::calculate_subspan_type
template<class ElementType, std::ptrdiff_t Extent>
class iDynTree::Span
template<class ElementType, std::ptrdiff_t Extent>
struct iDynTree::details::calculate_byte_size
template<class ElementType>
struct iDynTree::details::calculate_byte_size<ElementType, dynamic_extent>

Typedefs

template<typename... Ts>
using void_t = typename make_void<Ts...>::type

Functions

template<class Span, bool IsConst>
auto operator+(typename span_iterator<Span, IsConst>::difference_type n, span_iterator<Span, IsConst> rhs) -> IDYNTREE_CONSTEXPR span_iterator<Span, IsConst>
template<class Span, bool IsConst>
auto operator-(typename span_iterator<Span, IsConst>::difference_type n, span_iterator<Span, IsConst> rhs) -> IDYNTREE_CONSTEXPR span_iterator<Span, IsConst>
template<class ElementType, std::ptrdiff_t FirstExtent, std::ptrdiff_t SecondExtent>
auto operator==(Span<ElementType, FirstExtent> l, Span<ElementType, SecondExtent> r) -> IDYNTREE_CONSTEXPR bool
template<class ElementType, std::ptrdiff_t Extent>
auto operator!=(Span<ElementType, Extent> l, Span<ElementType, Extent> r) -> IDYNTREE_CONSTEXPR bool
template<class ElementType, std::ptrdiff_t Extent>
auto operator<(Span<ElementType, Extent> l, Span<ElementType, Extent> r) -> IDYNTREE_CONSTEXPR bool
template<class ElementType, std::ptrdiff_t Extent>
auto operator<=(Span<ElementType, Extent> l, Span<ElementType, Extent> r) -> IDYNTREE_CONSTEXPR bool
template<class ElementType, std::ptrdiff_t Extent>
auto operator>(Span<ElementType, Extent> l, Span<ElementType, Extent> r) -> IDYNTREE_CONSTEXPR bool
template<class ElementType, std::ptrdiff_t Extent>
auto operator>=(Span<ElementType, Extent> l, Span<ElementType, Extent> r) -> IDYNTREE_CONSTEXPR bool
template<class ElementType>
auto make_span(ElementType* ptr, typename Span<ElementType>::index_type count) -> IDYNTREE_CONSTEXPR Span<ElementType>
template<class ElementType>
auto make_span(ElementType* firstElem, ElementType* lastElem) -> IDYNTREE_CONSTEXPR Span<ElementType>
template<class ElementType, std::size_t N>
auto make_span(ElementType(&arr)[N]) -> IDYNTREE_CONSTEXPR Span<ElementType, N> noexcept
template<class Container>
auto make_span(Container& cont) -> IDYNTREE_CONSTEXPR Span<typename Container::value_type>
template<class Container, typename = typename std::enable_if<SpanUtils::is_value_defined<Container>::value>::type>
auto make_span(const Container& cont) -> IDYNTREE_CONSTEXPR Span<const typename Container::value_type>
template<class Ptr>
auto make_span(Ptr& cont, std::ptrdiff_t count) -> IDYNTREE_CONSTEXPR Span<typename Ptr::element_type>
template<class Ptr, typename = typename std::enable_if<!SpanUtils::is_value_defined<Ptr>::value&& SpanUtils::is_element_defined<Ptr>::value>::type>
auto make_span(Ptr& cont) -> IDYNTREE_CONSTEXPR Span<typename Ptr::element_type>
template<class Container, typename = typename std::enable_if<!SpanUtils::is_value_defined<Container>::value&& !SpanUtils::is_element_defined<Container>::value&& SpanUtils::has_data_method<Container>::value>::type>
auto make_span(Container& cont) -> IDYNTREE_CONSTEXPR Span<typename std::remove_pointer<decltype(std::declval<Container>).data())>::type>

Variables

IDYNTREE_CONSTEXPR const std::ptrdiff_t dynamic_extent

Defines

#define IDYNTREE_USE_STATIC_CONSTEXPR_WORKAROUND
#define IDYNTREE_CONSTEXPR