v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::base::DiscriminatedUnion< TagEnum, Ts > Class Template Reference

#include <discriminated-union.h>

Collaboration diagram for v8::base::DiscriminatedUnion< TagEnum, Ts >:

Public Types

using Tag = TagEnum
 

Public Member Functions

 DiscriminatedUnion (DiscriminatedUnion &&other) V8_NOEXCEPT=default
 
 DiscriminatedUnion (const DiscriminatedUnion &other) V8_NOEXCEPT=default
 
DiscriminatedUnionoperator= (DiscriminatedUnion &&other) V8_NOEXCEPT=default
 
DiscriminatedUnionoperator= (const DiscriminatedUnion &other) V8_NOEXCEPT=default
 
template<typename T >
constexpr DiscriminatedUnion (Tag tag, T &&data) V8_NOEXCEPT
 
template<typename T >
constexpr DiscriminatedUnion (T &&data) V8_NOEXCEPT
 
constexpr Tag tag () const
 
template<Tag tag>
constexpr const auto & get () const
 
template<Tag tag>
constexpr auto & get ()
 
template<typename T >
constexpr const auto & get () const
 
template<typename T >
constexpr auto & get ()
 

Private Attributes

char data_ [std::max({sizeof(Ts)...})]
 
uint8_t tag_
 

Detailed Description

template<typename TagEnum, typename... Ts>
class v8::base::DiscriminatedUnion< TagEnum, Ts >

Definition at line 40 of file discriminated-union.h.

Member Typedef Documentation

◆ Tag

template<typename TagEnum , typename... Ts>
using v8::base::DiscriminatedUnion< TagEnum, Ts >::Tag = TagEnum

Definition at line 46 of file discriminated-union.h.

Constructor & Destructor Documentation

◆ DiscriminatedUnion() [1/4]

template<typename TagEnum , typename... Ts>
v8::base::DiscriminatedUnion< TagEnum, Ts >::DiscriminatedUnion ( DiscriminatedUnion< TagEnum, Ts > && other)
default

◆ DiscriminatedUnion() [2/4]

template<typename TagEnum , typename... Ts>
v8::base::DiscriminatedUnion< TagEnum, Ts >::DiscriminatedUnion ( const DiscriminatedUnion< TagEnum, Ts > & other)
default

◆ DiscriminatedUnion() [3/4]

template<typename TagEnum , typename... Ts>
template<typename T >
v8::base::DiscriminatedUnion< TagEnum, Ts >::DiscriminatedUnion ( Tag tag,
T && data )
inlineexplicitconstexpr

Definition at line 59 of file discriminated-union.h.

Here is the call graph for this function:

◆ DiscriminatedUnion() [4/4]

template<typename TagEnum , typename... Ts>
template<typename T >
v8::base::DiscriminatedUnion< TagEnum, Ts >::DiscriminatedUnion ( T && data)
inlineexplicitconstexpr

Definition at line 71 of file discriminated-union.h.

Member Function Documentation

◆ get() [1/4]

template<typename TagEnum , typename... Ts>
template<Tag tag>
auto & v8::base::DiscriminatedUnion< TagEnum, Ts >::get ( )
inlineconstexpr

Definition at line 91 of file discriminated-union.h.

Here is the call graph for this function:

◆ get() [2/4]

template<typename TagEnum , typename... Ts>
template<typename T >
auto & v8::base::DiscriminatedUnion< TagEnum, Ts >::get ( )
inlineconstexpr

Definition at line 106 of file discriminated-union.h.

Here is the call graph for this function:

◆ get() [3/4]

template<typename TagEnum , typename... Ts>
template<Tag tag>
const auto & v8::base::DiscriminatedUnion< TagEnum, Ts >::get ( ) const
inlineconstexpr

Definition at line 83 of file discriminated-union.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get() [4/4]

template<typename TagEnum , typename... Ts>
template<typename T >
const auto & v8::base::DiscriminatedUnion< TagEnum, Ts >::get ( ) const
inlineconstexpr

Definition at line 99 of file discriminated-union.h.

Here is the call graph for this function:

◆ operator=() [1/2]

template<typename TagEnum , typename... Ts>
DiscriminatedUnion & v8::base::DiscriminatedUnion< TagEnum, Ts >::operator= ( const DiscriminatedUnion< TagEnum, Ts > & other)
default

◆ operator=() [2/2]

template<typename TagEnum , typename... Ts>
DiscriminatedUnion & v8::base::DiscriminatedUnion< TagEnum, Ts >::operator= ( DiscriminatedUnion< TagEnum, Ts > && other)
default

◆ tag()

template<typename TagEnum , typename... Ts>
Tag v8::base::DiscriminatedUnion< TagEnum, Ts >::tag ( ) const
inlineconstexpr

Definition at line 79 of file discriminated-union.h.

Here is the caller graph for this function:

Member Data Documentation

◆ data_

template<typename TagEnum , typename... Ts>
char v8::base::DiscriminatedUnion< TagEnum, Ts >::data_[std::max({sizeof(Ts)...})]
private

Definition at line 112 of file discriminated-union.h.

◆ tag_

template<typename TagEnum , typename... Ts>
uint8_t v8::base::DiscriminatedUnion< TagEnum, Ts >::tag_
private

Definition at line 114 of file discriminated-union.h.


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