Finite Volume Solver  prototype
A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin.
Classes | Namespaces | Functions | Variables
span.hpp File Reference
#include "fub/core/assert.hpp"
#include "fub/core/dynamic_extent.hpp"
#include "fub/core/pragma.hpp"
#include "fub/core/type_traits.hpp"
#include <array>
#include <type_traits>

Go to the source code of this file.

Classes

struct  fub::is_span< T >
 Returns true if the specified T is a span<S, N> for some type S and integer N. More...
 
struct  fub::is_span< span< T, N > >
 Returns true if the specified T is a span<S, N> for some type S and integer N. More...
 
class  fub::span< T, N >
 A span is a view over a contiguous sequence of objects, the storage of which is owned by some other object. More...
 
class  fub::span< T, 0 >
 A span is a view over a contiguous sequence of objects, the storage of which is owned by some other object. More...
 
class  fub::span< T, dynamic_extent >
 span is a compact view over a contiguous range of data. More...
 
class  std::tuple_size< fub::span< T, N > >
 

Namespaces

 fub
 The fub namespace.
 

Functions

template<class T , typename I >
 fub::span (T *, I) -> span< T >
 
template<class T , size_t N>
 fub::span (T(&)[N]) -> span< T, static_cast< std::ptrdiff_t >(N)>
 
template<class T , size_t N>
 fub::span (std::array< T, N > &) -> span< T, static_cast< std::ptrdiff_t >(N)>
 
template<class T , size_t N>
 fub::span (const std::array< T, N > &) -> span< const T, static_cast< std::ptrdiff_t >(N)>
 
template<class Container >
 fub::span (Container &) -> span< typename Container::value_type >
 
template<class Container >
 fub::span (const Container &) -> span< const typename Container::value_type >
 
template<class T , size_t N>
auto fub::make_span (T(&array)[N]) -> span< T, static_cast< std::ptrdiff_t >(N)>
 
template<class T , size_t N>
auto fub::make_span (std::array< T, N > &array) -> span< T, static_cast< std::ptrdiff_t >(N)>
 
template<class T , size_t N>
auto fub::make_span (const std::array< T, N > &array) -> span< const T, static_cast< std::ptrdiff_t >(N)>
 
template<class Container >
auto fub::make_span (Container &array) -> span< typename Container::value_type >
 
template<class Container >
auto fub::make_span (const Container &array) -> span< const typename Container::value_type >
 

Variables

template<typename T >
static constexpr bool fub::is_span_v
 Returns true if the specified T is a span<S, N> for some type S and integer N. More...