v8 12.4.254 (node 22.4.1)
V8 is Google's open source JavaScript engine
Loading...
Searching...
No Matches
MemorySpan< T > Class Template Reference

#include <v8-memory-span.h>

Data Structures

class  Iterator
 

Public Member Functions

constexpr MemorySpan ()=default
 
constexpr MemorySpan (std::nullptr_t, size_t)
 
template<typename Iterator , std::enable_if_t< is_compatible_iterator_v< Iterator >, bool > = true>
constexpr MemorySpan (Iterator first, size_t count)
 
template<typename Iterator , std::enable_if_t< is_compatible_iterator_v< Iterator > &&!std::is_convertible_v< Iterator, size_t >, bool > = true>
constexpr MemorySpan (Iterator first, Iterator last)
 
template<size_t N>
constexpr MemorySpan (T(&a)[N]) noexcept
 
template<typename U , size_t N, std::enable_if_t< is_array_convertible_v< U, T >, bool > = true>
constexpr MemorySpan (std::array< U, N > &a) noexcept
 
template<typename U , size_t N, std::enable_if_t< is_array_convertible_v< const U, T >, bool > = true>
constexpr MemorySpan (const std::array< U, N > &a) noexcept
 
constexpr T * data () const
 
constexpr size_t size () const
 
constexpr T & operator[] (size_t i) const
 
constexpr bool empty () const
 
Iterator begin () const
 
Iterator end () const
 

Detailed Description

template<typename T>
class v8::MemorySpan< T >

Points to an unowned contiguous buffer holding a known number of elements.

This is similar to std::span (under consideration for C++20), but does not require advanced C++ support. In the (far) future, this may be replaced with or aliased to std::span.

To facilitate future migration, this class exposes a subset of the interface implemented by std::span.

Definition at line 29 of file v8-memory-span.h.

Constructor & Destructor Documentation

◆ MemorySpan() [1/7]

template<typename T >
constexpr MemorySpan ( )
constexprdefault

The default constructor creates an empty span.

◆ MemorySpan() [2/7]

template<typename T >
constexpr MemorySpan ( std::nullptr_t  ,
size_t   
)
inlineconstexpr

Constructor from nullptr and count, for backwards compatibility. This is not compatible with C++20 std::span.

Definition at line 73 of file v8-memory-span.h.

◆ MemorySpan() [3/7]

template<typename T >
template<typename Iterator , std::enable_if_t< is_compatible_iterator_v< Iterator >, bool > = true>
constexpr MemorySpan ( Iterator  first,
size_t  count 
)
inlineconstexpr

Constructor from "iterator" and count.

Definition at line 78 of file v8-memory-span.h.

◆ MemorySpan() [4/7]

template<typename T >
template<typename Iterator , std::enable_if_t< is_compatible_iterator_v< Iterator > &&!std::is_convertible_v< Iterator, size_t >, bool > = true>
constexpr MemorySpan ( Iterator  first,
Iterator  last 
)
inlineconstexpr

Constructor from two "iterators".

Definition at line 87 of file v8-memory-span.h.

◆ MemorySpan() [5/7]

template<typename T >
template<size_t N>
constexpr MemorySpan ( T(&)  a[N])
inlineconstexprnoexcept

Implicit conversion from C-style array.

Definition at line 93 of file v8-memory-span.h.

◆ MemorySpan() [6/7]

template<typename T >
template<typename U , size_t N, std::enable_if_t< is_array_convertible_v< U, T >, bool > = true>
constexpr MemorySpan ( std::array< U, N > &  a)
inlineconstexprnoexcept

Implicit conversion from std::array.

Definition at line 99 of file v8-memory-span.h.

◆ MemorySpan() [7/7]

template<typename T >
template<typename U , size_t N, std::enable_if_t< is_array_convertible_v< const U, T >, bool > = true>
constexpr MemorySpan ( const std::array< U, N > &  a)
inlineconstexprnoexcept

Implicit conversion from const std::array.

Definition at line 106 of file v8-memory-span.h.

Member Function Documentation

◆ begin()

template<typename T >
Iterator begin ( ) const
inline

Definition at line 153 of file v8-memory-span.h.

◆ data()

template<typename T >
constexpr T * data ( ) const
inlineconstexpr

Returns a pointer to the beginning of the buffer.

Definition at line 111 of file v8-memory-span.h.

◆ empty()

template<typename T >
constexpr bool empty ( ) const
inlineconstexpr

Returns true if the buffer is empty.

Definition at line 118 of file v8-memory-span.h.

◆ end()

template<typename T >
Iterator end ( ) const
inline

Definition at line 154 of file v8-memory-span.h.

◆ operator[]()

template<typename T >
constexpr T & operator[] ( size_t  i) const
inlineconstexpr

Definition at line 115 of file v8-memory-span.h.

◆ size()

template<typename T >
constexpr size_t size ( ) const
inlineconstexpr

Returns the number of elements that the buffer holds.

Definition at line 113 of file v8-memory-span.h.


The documentation for this class was generated from the following file: