matio-cpp  v0.2.5
A C++ wrapper of the matio library, with memory ownership handling, to read and write .mat files.
Span.h File Reference
+ Include dependency graph for Span.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  matioCpp::SpanUtils::make_void< Ts >
 
struct  matioCpp::SpanUtils::is_value_defined< T, typename >
 
struct  matioCpp::SpanUtils::is_value_defined< T, void_t< typename T::value_type > >
 
struct  matioCpp::SpanUtils::is_element_defined< T, typename >
 
struct  matioCpp::SpanUtils::is_element_defined< T, void_t< typename T::element_type > >
 
struct  matioCpp::SpanUtils::has_data_method< T, typename >
 
struct  matioCpp::SpanUtils::has_data_method< T, void_t< decltype(std::declval< T >().data())> >
 
struct  matioCpp::SpanUtils::has_size_method< T, typename >
 
struct  matioCpp::SpanUtils::has_size_method< T, void_t< decltype(std::declval< T >().size())> >
 
struct  matioCpp::SpanUtils::has_type_member< class, typename >
 
struct  matioCpp::SpanUtils::has_type_member< T, void_t< typename T::value_type > >
 
struct  matioCpp::SpanUtils::container_data< T, typename >
 
struct  matioCpp::SpanUtils::container_data< T, typename std::enable_if< has_type_member< T >::value >::type >
 
struct  matioCpp::SpanUtils::container_data< T, typename std::enable_if<!has_type_member< T >::value &&has_data_method< T >::value >::type >
 
struct  matioCpp::SpanUtils::container_data< T, typename std::enable_if< std::is_array< T >::value >::type >
 
struct  matioCpp::SpanUtils::is_span_constructible< Class, typename >
 
struct  matioCpp::SpanUtils::is_span_constructible< Class, typename std::enable_if< std::is_constructible< Span< typename container_data< Class >::type >, Class & >::value >::type >
 
struct  matioCpp::details::is_span_oracle< T >
 
struct  matioCpp::details::is_span_oracle< matioCpp::Span< ElementType, Extent > >
 
struct  matioCpp::details::is_span< T >
 
struct  matioCpp::details::is_std_array_oracle< T >
 
struct  matioCpp::details::is_std_array_oracle< std::array< ElementType, Extent > >
 
struct  matioCpp::details::is_std_array< T >
 
struct  matioCpp::details::is_allowed_extent_conversion< From, To >
 
struct  matioCpp::details::is_allowed_element_type_conversion< From, To >
 
class  matioCpp::details::span_iterator< Span, IsConst >
 
class  matioCpp::details::extent_type< Ext >
 
class  matioCpp::details::extent_type< dynamic_extent >
 
struct  matioCpp::details::calculate_subspan_type< ElementType, Extent, Offset, Count >
 
class  matioCpp::Span< ElementType, Extent >
 
struct  matioCpp::details::calculate_byte_size< ElementType, Extent >
 
struct  matioCpp::details::calculate_byte_size< ElementType, dynamic_extent >
 
struct  matioCpp::SpanUtils::is_make_span_callable< Class, typename >
 
struct  matioCpp::SpanUtils::is_make_span_callable< Class, void_t< decltype(make_span(std::declval< Class >()))> >
 

Namespaces

 matioCpp
 
 matioCpp::SpanUtils
 
 matioCpp::details
 

Typedefs

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

Functions

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