FlatCityBuf C++ reader 0.8.0
Native C++17 reader for FlatCityBuf, the cloud-optimized CityJSON format
Loading...
Searching...
No Matches
fcb::span< T > Class Template Reference

Minimal C++17 stand-in for std::span: a non-owning view over contiguous memory. More...

#include <fcb/span.hpp>

Public Member Functions

 span () noexcept
 
 span (T *data, std::size_t size) noexcept
 
template<typename U , typename = std::enable_if_t<std::is_same<const U, T>::value>>
 span (const std::vector< U > &v) noexcept
 Implicit view over a const vector, for span<const U>.
 
 span (std::vector< std::remove_const_t< T > > &v) noexcept
 Implicit view over a mutable vector.
 
T * data () const noexcept
 
std::size_t size () const noexcept
 
bool empty () const noexcept
 
T & operator[] (std::size_t i) const noexcept
 
T * begin () const noexcept
 
T * end () const noexcept
 
span subspan (std::size_t offset, std::size_t count) const noexcept
 

Detailed Description

template<typename T>
class fcb::span< T >

Minimal C++17 stand-in for std::span: a non-owning view over contiguous memory.

The library targets C++17 because the GIS ecosystem consuming it still ships C++17 compilers, so std::span is not available.

Definition at line 13 of file span.hpp.

Constructor & Destructor Documentation

◆ span() [1/4]

template<typename T >
fcb::span< T >::span ( )
inlinenoexcept

Definition at line 15 of file span.hpp.

Referenced by fcb::span< T >::subspan().

◆ span() [2/4]

template<typename T >
fcb::span< T >::span ( T *  data,
std::size_t  size 
)
inlinenoexcept

Definition at line 16 of file span.hpp.

◆ span() [3/4]

template<typename T >
template<typename U , typename = std::enable_if_t<std::is_same<const U, T>::value>>
fcb::span< T >::span ( const std::vector< U > &  v)
inlinenoexcept

Implicit view over a const vector, for span<const U>.

Definition at line 20 of file span.hpp.

◆ span() [4/4]

template<typename T >
fcb::span< T >::span ( std::vector< std::remove_const_t< T > > &  v)
inlinenoexcept

Implicit view over a mutable vector.

Definition at line 23 of file span.hpp.

Member Function Documentation

◆ begin()

template<typename T >
T * fcb::span< T >::begin ( ) const
inlinenoexcept

Definition at line 30 of file span.hpp.

◆ data()

template<typename T >
T * fcb::span< T >::data ( ) const
inlinenoexcept

Definition at line 25 of file span.hpp.

Referenced by fcb::check_magic_bytes(), fcb::NodeItem::decode(), and fcb::decode_attributes().

◆ empty()

template<typename T >
bool fcb::span< T >::empty ( ) const
inlinenoexcept

Definition at line 27 of file span.hpp.

Referenced by fcb::decode_attributes().

◆ end()

template<typename T >
T * fcb::span< T >::end ( ) const
inlinenoexcept

Definition at line 31 of file span.hpp.

◆ operator[]()

template<typename T >
T & fcb::span< T >::operator[] ( std::size_t  i) const
inlinenoexcept

Definition at line 29 of file span.hpp.

◆ size()

◆ subspan()

template<typename T >
span fcb::span< T >::subspan ( std::size_t  offset,
std::size_t  count 
) const
inlinenoexcept

Definition at line 33 of file span.hpp.

References fcb::span< T >::span(), and offset.


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