| 
    Finite Volume Solver
    prototype
    
   A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin. 
   | 
 
A span is a view over a contiguous sequence of objects, the storage of which is owned by some other object. More...
#include <span.hpp>
Public Types | |
| using | element_type = T | 
| using | pointer = T * | 
| using | reference = T & | 
| using | value_type = std::remove_cv_t< T > | 
| using | index_type = std::ptrdiff_t | 
| using | difference_type = std::ptrdiff_t | 
| using | iterator = pointer | 
| using | const_iterator = std::add_const_t< T > * | 
| using | reverse_iterator = std::reverse_iterator< iterator > | 
| using | const_reverse_iterator = std::reverse_iterator< const_iterator > | 
Public Member Functions | |
Constructors, copy, and assignment [span.cons]  | |
| constexpr | span (pointer p, [[maybe_unused]] index_type size) | 
Constructs a span from a pointer and size pair.  More... | |
| constexpr | span (pointer first, pointer last) | 
| Constructs a span from two pointers.  More... | |
| constexpr | span (element_type(&arr)[sextent]) noexcept | 
| Implicit conversion from a built-in C-style array.  More... | |
| template<typename ValueType , std::size_t Extent, typename = std::enable_if_t<Extent == extent>, typename = std::enable_if_t<std::is_convertible< const ValueType (*)[], element_type (*)[]>::value>> | |
| constexpr | span (const std::array< ValueType, Extent > &arr) noexcept | 
Implicit conversion from const std::arrays.  More... | |
| template<typename ValueType , std::size_t Extent, typename = std::enable_if_t<Extent == extent>, typename = std::enable_if_t<std::is_convertible< ValueType (*)[], element_type (*)[]>::value>> | |
| constexpr | span (std::array< ValueType, Extent > &arr) noexcept | 
Implicit conversion from mutable std::arrays.  More... | |
| template<typename Container > | |
| constexpr | span (Container &container) | 
| Implicit conversion operator from a mutable container.  More... | |
| template<typename Container > | |
| constexpr | span (const Container &container) | 
| Implicit conversion operator from a constant container.  More... | |
| template<typename S , std::ptrdiff_t M> | |
| constexpr | span (const span< S, M > &s) noexcept | 
| Implicit conversion from other span types.  More... | |
| template<typename S , typename = std::enable_if_t<std::is_convertible< typename span<S>::element_type (*)[], element_type (*)[]>::value>> | |
| constexpr | span (const span< S > &s) | 
Constructs a span from a pointer and size pair.  More... | |
| constexpr | span (const span &s) noexcept=default | 
| Defaulted copy constructor to trivially copy the class member variables.  More... | |
Subviews [span.sub]  | |
| template<ptrdiff_t Count, typename = std::enable_if_t<(0 <= Count && Count <= extent)>> | |
| constexpr span< element_type, Count > | first () const | 
Returns a span of the first Count-many elements of this span.  More... | |
| constexpr span< element_type > | first (index_type count) const | 
Returns a span of the first count-many elements of this span.  More... | |
| template<ptrdiff_t Count, typename = std::enable_if_t<(0 <= Count && Count <= extent)>> | |
| constexpr span< element_type, Count > | last () const | 
Returns a span of the last Count-many elements of this span.  More... | |
| constexpr span< element_type > | last (index_type count) const | 
Returns a span of the last count-many elements of this span.  More... | |
| template<ptrdiff_t Offset, ptrdiff_t Count = dynamic_extent, typename = std::enable_if_t<(0 <= Offset && Offset <= extent)>, typename = std::enable_if_t<(Count == dynamic_extent || (0 <= Count && Count + Offset <= extent))>> | |
| constexpr auto | subspan () const | 
Returns a subspan viewing Count many elements from offset Offset.  More... | |
| constexpr span< element_type > | subspan (index_type offset, index_type count=dynamic_extent) const | 
Returns a subspan viewing count many elements from offset offset.  More... | |
Observers [span.obs]  | |
| constexpr index_type | size () const noexcept | 
| Returns the number of elements in the span.  More... | |
| constexpr index_type | size_bytes () const noexcept | 
| Returns the number of bytes which are spanned by this span.  More... | |
| constexpr bool | empty () const noexcept | 
Returns true if size() == 0.  More... | |
Element access [span.elem]  | |
| constexpr pointer | data () const noexcept | 
| Returns the underlying pointer.  More... | |
| constexpr reference | operator[] (index_type n) const | 
| Accesses the n-th element of the spanned array.  More... | |
| constexpr reference | operator() (index_type n) const | 
| Accesses the n-th element of the spanned array.  More... | |
Static Public Attributes | |
| static constexpr index_type | extent | 
| static constexpr std::size_t | sextent | 
Iterator support [span.iterators] | |
| pointer | pointer_ | 
| Returns an iterator pointing to the first element of the span.  More... | |
| constexpr iterator | begin () const noexcept | 
| Returns an iterator pointing to the first element of the span.  More... | |
| constexpr const_iterator | cbegin () const noexcept | 
| Returns a const iterator pointing to the first element of the span.  More... | |
| constexpr iterator | end () const noexcept | 
| Returns an iterator pointing one after the last element of the span.  More... | |
| constexpr const_iterator | cend () const noexcept | 
| Returns a const iterator pointing one after the last element of the span.  More... | |
| constexpr reverse_iterator | rbegin () const noexcept | 
| Returns a reverse iterator pointing to the last element of the span.  More... | |
| constexpr const_reverse_iterator | crbegin () const noexcept | 
| Returns a const reverse iterator pointing to the last element of the span.  More... | |
| constexpr reverse_iterator | rend () const noexcept | 
| Returns a reverse iterator pointing to the first element of the span.  More... | |
| constexpr const_reverse_iterator | crend () const noexcept | 
| Returns a const reverse iterator pointing to the first element of the span.  More... | |
A span is a view over a contiguous sequence of objects, the storage of which is owned by some other object.
All member functions of span have constant time complexity.
T is required to be a complete object type that is not an abstract class type.
If N is negative and not equal to dynamic_extent, the program is ill-formed. 
| using fub::span< T, N >::const_iterator = std::add_const_t<T>* | 
| using fub::span< T, N >::const_reverse_iterator = std::reverse_iterator<const_iterator> | 
| using fub::span< T, N >::difference_type = std::ptrdiff_t | 
| using fub::span< T, N >::element_type = T | 
| using fub::span< T, N >::index_type = std::ptrdiff_t | 
| using fub::span< T, N >::iterator = pointer | 
| using fub::span< T, N >::reverse_iterator = std::reverse_iterator<iterator> | 
| using fub::span< T, N >::value_type = std::remove_cv_t<T> | 
      
  | 
  inlineconstexpr | 
Constructs a span from a pointer and size pair. 
This performs an assertion check in debug builds which will terminate the application if the specified size does not match the extent.
| [in] | p | a valid address pointing to the first element of the span. | 
| [in] | size | the size such that [p, p + size) is a valid range. | 
size == extent| Nothing. | 
      
  | 
  inlineconstexpr | 
Constructs a span from two pointers.
This performs an assertion check in debug builds which will terminate the application if the specified size does not match the extent.
| [in] | first | a valid address pointing to the first element of the span. | 
| [in] | last | a pointer such that [first, last) is a valid range. | 
last - first == extent| Nothing. | 
      
  | 
  inlineconstexprnoexcept | 
      
  | 
  inlineconstexprnoexcept | 
      
  | 
  inlineconstexprnoexcept | 
      
  | 
  inlineconstexpr | 
Implicit conversion operator from a mutable container.
| [in] | container | A container which owns the contiguous memory. The container must outlive this span, otherwise the span is dangling. | 
| Container | A container class which has the class member functions Container::data() and Container::size(). | 
container.size() == extent !is_span_v<Container>| Nothing. | 
      
  | 
  inlineconstexpr | 
Implicit conversion operator from a constant container.
| [in] | container | A container which owns the contiguous memory. The container must outlive this span, otherwise the span is dangling. | 
| Container | A container class which has the class member functions Container::data() and Container::size(). | 
extent <= container.size() !is_span_v<Container>| Nothing. | 
      
  | 
  inlineconstexpr | 
Constructs a span from a pointer and size pair. 
This performs an assertion check in debug builds which will terminate the application if the specified size does not match the extent.
| [in] | p | a valid address pointing to the first element of the span. | 
| [in] | size | the size such that [p, p + size) is a valid range. | 
size == extent| Nothing. | 
      
  | 
  constexprdefaultnoexcept | 
Defaulted copy constructor to trivially copy the class member variables.
| Nothing. | 
      
  | 
  inlineconstexprnoexcept | 
Returns an iterator pointing to the first element of the span.
| Nothing. | 
      
  | 
  inlineconstexprnoexcept | 
Returns a const iterator pointing to the first element of the span.
| Nothing. | 
      
  | 
  inlineconstexprnoexcept | 
Returns a const iterator pointing one after the last element of the span.
| Nothing. | 
      
  | 
  inlineconstexprnoexcept | 
Returns a const reverse iterator pointing to the last element of the span.
| Nothing. | 
      
  | 
  inlineconstexprnoexcept | 
Returns a const reverse iterator pointing to the first element of the span.
| Nothing. | 
      
  | 
  inlineconstexprnoexcept | 
Returns the underlying pointer.
| Nothing. | 
      
  | 
  inlineconstexprnoexcept | 
Returns true if size() == 0. 
| Nothing. | 
      
  | 
  inlineconstexprnoexcept | 
Returns an iterator pointing one after the last element of the span.
| Nothing. | 
      
  | 
  inlineconstexpr | 
Returns a span of the first Count-many elements of this span. 
| Count | Size of the returned subspan. | 
0 <= Count && Count <= extent.| Nothing. | 
      
  | 
  inlineconstexpr | 
Returns a span of the first count-many elements of this span. 
| [in] | count | Size of the returned subspan. | 
0 <= count && count <= extent.| Nothing. | 
      
  | 
  inlineconstexpr | 
Returns a span of the last Count-many elements of this span. 
| Count | Size of the returned subspan. | 
0 <= Count && Count <= extent.| Nothing. | 
      
  | 
  inlineconstexpr | 
Returns a span of the last count-many elements of this span. 
| [in] | count | Size of the returned subspan. | 
0 <= count && count <= extent.| Nothing. | 
      
  | 
  inlineconstexpr | 
Accesses the n-th element of the spanned array.
| Nothing. | 
      
  | 
  inlineconstexpr | 
Accesses the n-th element of the spanned array.
| Nothing. | 
      
  | 
  inlineconstexprnoexcept | 
Returns a reverse iterator pointing to the last element of the span.
| Nothing. | 
      
  | 
  inlineconstexprnoexcept | 
Returns a reverse iterator pointing to the first element of the span.
| Nothing. | 
      
  | 
  inlineconstexprnoexcept | 
Returns the number of elements in the span.
| Nothing. | 
      
  | 
  inlineconstexprnoexcept | 
Returns the number of bytes which are spanned by this span.
| Nothing. | 
      
  | 
  inlineconstexpr | 
Returns a subspan viewing Count many elements from offset Offset. 
| Offset | the offset of the returned subspan. | 
| Count | Size of the returned subspan. | 
0 <= Count && Count <= extent.| Nothing. | 
      
  | 
  inlineconstexpr | 
Returns a subspan viewing count many elements from offset offset. 
| offset | the offset of the returned subspan. | 
| count | Size of the returned subspan. | 
0 <= offset && offset <= extent. count == dynamic_extent || 0 <= count && count + offset <= size().| Nothing. | 
      
  | 
  staticconstexpr | 
      
  | 
  private | 
Returns an iterator pointing to the first element of the span.
| Nothing. | 
      
  | 
  staticconstexpr |