souffle  2.0.2-371-g6315b36
Namespaces | Data Structures | Typedefs | Functions | Variables
TCB_SPAN_NAMESPACE_NAME Namespace Reference

Namespaces

 detail
 

Data Structures

class  span
 

Typedefs

using byte = unsigned char
 

Functions

template<typename ElementType , std::size_t Extent>
span< const byte,((Extent==dynamic_extent) ? dynamic_extent :sizeof(ElementType) *Extent)> as_bytes (span< ElementType, Extent > s) noexcept
 
template<class ElementType , size_t Extent, typename std::enable_if<!std::is_const< ElementType >::value, int >::type = 0>
span< byte,((Extent==dynamic_extent) ? dynamic_extent :sizeof(ElementType) *Extent)> as_writable_bytes (span< ElementType, Extent > s) noexcept
 
template<std::size_t N, typename E , std::size_t S>
constexpr auto get (span< E, S > s) -> decltype(s[N])
 
template<typename Container >
constexpr span< const typename Container::value_type > make_span (const Container &cont)
 
template<typename T , std::size_t N>
TCB_SPAN_ARRAY_CONSTEXPR span< const T, N > make_span (const std::array< T, N > &arr) noexcept
 
template<typename Container >
constexpr span< typename Container::value_type > make_span (Container &cont)
 
template<typename ElementType , std::size_t Extent>
constexpr span< ElementType, Extent > make_span (span< ElementType, Extent > s) noexcept
 
template<typename T , std::size_t N>
TCB_SPAN_ARRAY_CONSTEXPR span< T, N > make_span (std::array< T, N > &arr) noexcept
 
template<typename T , std::size_t N>
constexpr span< T, N > make_span (T(&arr)[N]) noexcept
 

Variables

constexpr TCB_SPAN_INLINE_VAR std::size_t dynamic_extent = SIZE_MAX
 

Typedef Documentation

◆ byte

using TCB_SPAN_NAMESPACE_NAME::byte = typedef unsigned char

Definition at line 151 of file span.h.

Function Documentation

◆ as_bytes()

template<typename ElementType , std::size_t Extent>
span<const byte, ((Extent == dynamic_extent) ? dynamic_extent : sizeof(ElementType) * Extent)> TCB_SPAN_NAMESPACE_NAME::as_bytes ( span< ElementType, Extent >  s)
noexcept

Definition at line 583 of file span.h.

584 {
585  return {reinterpret_cast<const byte*>(s.data()), s.size_bytes()};
586 }

References TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::data(), and TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::size_bytes().

Here is the call graph for this function:

◆ as_writable_bytes()

template<class ElementType , size_t Extent, typename std::enable_if<!std::is_const< ElementType >::value, int >::type = 0>
span<byte, ((Extent == dynamic_extent) ? dynamic_extent : sizeof(ElementType) * Extent)> TCB_SPAN_NAMESPACE_NAME::as_writable_bytes ( span< ElementType, Extent >  s)
noexcept

Definition at line 593 of file span.h.

594 {
595  return {reinterpret_cast<byte*>(s.data()), s.size_bytes()};
596 }

References TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::data(), and TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::size_bytes().

Here is the call graph for this function:

◆ get()

template<std::size_t N, typename E , std::size_t S>
constexpr auto TCB_SPAN_NAMESPACE_NAME::get ( span< E, S s) -> decltype(s[N])
constexpr

Definition at line 599 of file span.h.

600 {
601  return s[N];
602 }

Referenced by souffle::main(), souffle::SouffleProgram::purgeInternalRelations(), and souffle::ast::transform::SemanticChecker::transform().

◆ make_span() [1/6]

template<typename Container >
constexpr span<const typename Container::value_type> TCB_SPAN_NAMESPACE_NAME::make_span ( const Container &  cont)
constexpr

Definition at line 575 of file span.h.

576 {
577  return {cont};
578 }

◆ make_span() [2/6]

template<typename T , std::size_t N>
TCB_SPAN_ARRAY_CONSTEXPR span<const T, N> TCB_SPAN_NAMESPACE_NAME::make_span ( const std::array< T, N > &  arr)
noexcept

Definition at line 562 of file span.h.

563 {
564  return {arr};
565 }

◆ make_span() [3/6]

template<typename Container >
constexpr span<typename Container::value_type> TCB_SPAN_NAMESPACE_NAME::make_span ( Container &  cont)
constexpr

Definition at line 568 of file span.h.

569 {
570  return {cont};
571 }

◆ make_span() [4/6]

template<typename ElementType , std::size_t Extent>
constexpr span<ElementType, Extent> TCB_SPAN_NAMESPACE_NAME::make_span ( span< ElementType, Extent >  s)
constexprnoexcept

Definition at line 543 of file span.h.

544 {
545  return s;
546 }

Referenced by souffle::WriteStream::writeSize().

◆ make_span() [5/6]

template<typename T , std::size_t N>
TCB_SPAN_ARRAY_CONSTEXPR span<T, N> TCB_SPAN_NAMESPACE_NAME::make_span ( std::array< T, N > &  arr)
noexcept

Definition at line 555 of file span.h.

556 {
557  return {arr};
558 }

◆ make_span() [6/6]

template<typename T , std::size_t N>
constexpr span<T, N> TCB_SPAN_NAMESPACE_NAME::make_span ( T(&)  arr[N])
constexprnoexcept

Definition at line 549 of file span.h.

550 {
551  return {arr};
552 }

Variable Documentation

◆ dynamic_extent

constexpr TCB_SPAN_INLINE_VAR std::size_t TCB_SPAN_NAMESPACE_NAME::dynamic_extent = SIZE_MAX
constexpr