CTRE Phoenix 6 C++ 25.0.0-beta-4
Loading...
Searching...
No Matches
span.hpp File Reference
#include <array>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <type_traits>

Go to the source code of this file.

Classes

struct  ctre::phoenix6::swerve::detail::span_storage< E, S >
 
struct  ctre::phoenix6::swerve::detail::span_storage< E, dynamic_extent >
 
struct  ctre::phoenix6::swerve::detail::is_span< typename >
 
struct  ctre::phoenix6::swerve::detail::is_span< span< T, S > >
 
struct  ctre::phoenix6::swerve::detail::is_std_array< typename >
 
struct  ctre::phoenix6::swerve::detail::is_std_array< std::array< T, N > >
 
struct  ctre::phoenix6::swerve::detail::has_size_and_data< typename, typename >
 
struct  ctre::phoenix6::swerve::detail::has_size_and_data< T, std::void_t< decltype(std::size(std::declval< T >())), decltype(std::data(std::declval< T >()))> >
 
struct  ctre::phoenix6::swerve::detail::is_container< C, U >
 
struct  ctre::phoenix6::swerve::detail::is_container_element_type_compatible< typename, typename, typename >
 
struct  ctre::phoenix6::swerve::detail::is_container_element_type_compatible< T, E, typename std::enable_if< !std::is_same< typename std::remove_cv< decltype(std::data(std::declval< T >()))>::type, void >::value >::type >
 
struct  ctre::phoenix6::swerve::detail::is_complete< typename, typename >
 
struct  ctre::phoenix6::swerve::detail::is_complete< T, decltype(sizeof(T))>
 
class  ctre::phoenix6::swerve::span< ElementType, Extent >
 
class  std::tuple_size< ctre::phoenix6::swerve::span< ElementType, Extent > >
 
class  std::tuple_element< I, ctre::phoenix6::swerve::span< ElementType, Extent > >
 

Namespaces

namespace  ctre
 
namespace  ctre::phoenix6
 
namespace  ctre::phoenix6::swerve
 
namespace  ctre::phoenix6::swerve::detail
 
namespace  std
 

Typedefs

template<typename T >
using ctre::phoenix6::swerve::detail::uncvref_t
 
template<typename T >
using ctre::phoenix6::swerve::detail::remove_pointer_t = typename std::remove_pointer<T>::type
 

Functions

template<class T , size_t N>
 ctre::phoenix6::swerve::span (T(&)[N]) -> span< T, N >
 
template<class T , size_t N>
 ctre::phoenix6::swerve::span (std::array< T, N > &) -> span< T, N >
 
template<class T , size_t N>
 ctre::phoenix6::swerve::span (const std::array< T, N > &) -> span< const T, N >
 
template<class Container >
 ctre::phoenix6::swerve::span (Container &) -> span< typename Container::value_type >
 
template<class Container >
 ctre::phoenix6::swerve::span (const Container &) -> span< const typename Container::value_type >
 
template<typename ElementType , std::size_t Extent>
span< const std::byte,((Extent==dynamic_extent) ? dynamic_extent :sizeof(ElementType) *Extent)> ctre::phoenix6::swerve::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< std::byte,((Extent==dynamic_extent) ? dynamic_extent :sizeof(ElementType) *Extent)> ctre::phoenix6::swerve::as_writable_bytes (span< ElementType, Extent > s) noexcept
 
template<std::size_t N, typename E , std::size_t S>
constexpr auto ctre::phoenix6::swerve::get (span< E, S > s) -> decltype(s[N])
 

Variables

constexpr std::size_t ctre::phoenix6::swerve::dynamic_extent = SIZE_MAX