preCICE v3.2.0
Loading...
Searching...
No Matches
precice::detail Namespace Reference

Classes

struct  has_size_and_data
struct  has_size_and_data< T, void_t< decltype(detail::size(std::declval< T >())), decltype(detail::data(std::declval< T >()))> >
struct  is_complete
struct  is_complete< T, decltype(sizeof(T))>
struct  is_container
struct  is_container_element_type_compatible
struct  is_container_element_type_compatible< T, E, typename std::enable_if< !std::is_same< typename std::remove_cv< decltype(detail::data(std::declval< T >()))>::type, void >::value &&std::is_convertible< remove_pointer_t< decltype(detail::data(std::declval< T >()))>(*)[], E(*)[]>::value >::type >
struct  is_span
struct  is_span< span< T, S > >
struct  is_std_array
struct  is_std_array< std::array< T, N > >
struct  span_storage
struct  span_storage< E, dynamic_extent >

Typedefs

template<typename...>
using void_t = void
template<typename T>
using uncvref_t
template<typename T>
using remove_pointer_t = typename std::remove_pointer<T>::type

Functions

template<class C>
constexpr auto size (const C &c) -> decltype(c.size())
template<class T, std::size_t N>
constexpr std::size_t size (const T(&)[N]) noexcept
template<class C>
constexpr auto data (C &c) -> decltype(c.data())
template<class C>
constexpr auto data (const C &c) -> decltype(c.data())
template<class T, std::size_t N>
constexpr T * data (T(&array)[N]) noexcept
template<class E>
constexpr const E * data (std::initializer_list< E > il) noexcept

Typedef Documentation

◆ remove_pointer_t

template<typename T>
using precice::detail::remove_pointer_t = typename std::remove_pointer<T>::type

Definition at line 257 of file span.hpp.

◆ uncvref_t

template<typename T>
using precice::detail::uncvref_t
Initial value:

Definition at line 226 of file span.hpp.

◆ void_t

template<typename...>
using precice::detail::void_t = void

Definition at line 222 of file span.hpp.

Function Documentation

◆ data() [1/4]

template<class C>
auto precice::detail::data ( C & c) -> decltype(c.data())
constexpr

Definition at line 194 of file span.hpp.

◆ data() [2/4]

template<class C>
auto precice::detail::data ( const C & c) -> decltype(c.data())
constexpr

Definition at line 200 of file span.hpp.

◆ data() [3/4]

template<class E>
const E * precice::detail::data ( std::initializer_list< E > il)
constexprnoexcept

Definition at line 212 of file span.hpp.

◆ data() [4/4]

template<class T, std::size_t N>
T * precice::detail::data ( T(&) array[N])
constexprnoexcept

Definition at line 206 of file span.hpp.

◆ size() [1/2]

template<class C>
auto precice::detail::size ( const C & c) -> decltype(c.size())
constexpr

Definition at line 182 of file span.hpp.

◆ size() [2/2]

template<class T, std::size_t N>
std::size_t precice::detail::size ( const T(&)[N])
constexprnoexcept

Definition at line 188 of file span.hpp.