Console Library 8.0.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
console::Union< Ts > Class Template Reference

类型安全的可判别联合体。 More...

#include <union.h>

Classes

struct  type_at
 在类型列表中按索引获取类型。 More...
struct  type_at< 0, T, Rest... >
struct  type_at< N, T, Rest... >
struct  type_index
 获取类型 T 在类型列表中的索引。 More...
struct  type_index< T >
struct  type_index< T, U, Rest... >
struct  max
 编译期计算一组 size_t 中的最大值。 More...
struct  max< N >
struct  max< N, Ns... >
struct  has_void
 检查类型列表中是否包含 void。 More...
struct  has_void< T >
struct  has_void< T, Rest... >

Public Member Functions

 Union ()=default
 默认构造函数,构造一个空的 Union (不存储任何值)。
 ~Union ()
 析构函数,销毁当前存储的值 (若有)。
template<class T, class = typename std::enable_if< type_index<typename std::decay<T>::type, Ts...>::value != sizeof...(Ts)>::type>
 Union (T &&value)
 从值构造 Union。
template<class T, class = typename std::enable_if< type_index<typename std::decay<T>::type, Ts...>::value != sizeof...(Ts)>::type>
Union & operator= (T &&value)
 赋值运算符,从值赋值。
 Union (const Union &other)
 拷贝构造函数。
 Union (Union &&other)
 移动构造函数。
Union & operator= (const Union &other)
 拷贝赋值运算符。
Union & operator= (Union &&other)
 移动赋值运算符。
template<class T>
T * get ()
 按类型获取存储的值的指针。
template<class T>
const T * get () const
 按类型获取存储的值的常量指针。
template<class F>
auto visit (F &&f) -> typename std::enable_if< !has_void< decltype(f(std::declval< Ts & >()))... >::value, typename std::common_type< decltype(f(std::declval< Ts & >()))... >::type >::type
 使用单个函数对象访问存储的值 (有返回值版本,非 const)。
template<class F>
auto visit (F &&f) const -> typename std::enable_if< !has_void< decltype(f(std::declval< const Ts & >()))... >::value, typename std::common_type< decltype(f(std::declval< const Ts & >()))... >::type >::type
 使用单个函数对象访问存储的值 (有返回值版本,const)。
template<class F>
auto visit (F &&f) -> typename std::enable_if< has_void< decltype(f(std::declval< Ts & >()))... >::value >::type
 使用单个函数对象访问存储的值 (无返回值版本,非 const)。
template<class F>
auto visit (F &&f) const -> typename std::enable_if< has_void< decltype(f(std::declval< const Ts & >()))... >::value >::type
 使用单个函数对象访问存储的值 (无返回值版本,const)。
template<class... Fs>
auto visit (Fs &&...fs) -> typename std::enable_if< !has_void< decltype(fs(std::declval< Ts & >()))... >::value, typename std::common_type< decltype(fs(std::declval< Ts & >()))... >::type >::type
 使用多个函数对象访问存储的值 (有返回值版本,非 const)。
template<class... Fs>
auto visit (Fs &&...fs) const -> typename std::enable_if< !has_void< decltype(fs(std::declval< const Ts & >()))... >::value, typename std::common_type< decltype(fs(std::declval< const Ts & >()))... >::type >::type
 使用多个函数对象访问存储的值 (有返回值版本,const)。
template<class... Fs>
auto visit (Fs &&...fs) -> typename std::enable_if< has_void< decltype(fs(std::declval< Ts & >()))... >::value >::type
 使用多个函数对象访问存储的值 (无返回值版本,非 const)。
template<class... Fs>
auto visit (Fs &&...fs) const -> typename std::enable_if< has_void< decltype(fs(std::declval< const Ts & >()))... >::value >::type
 使用多个函数对象访问存储的值 (无返回值版本,const)。
size_t index () const
 获取当前存储类型的索引。
bool empty () const
 检查 Union 是否为空。

Private Types

template<size_t N, class... Types>
using type_at_t = typename type_at<N, Types...>::type

Private Member Functions

template<size_t N, class F, class Ret>
std::enable_if<(N< sizeof...(Ts))>::type _visit1 (F &&f, Ret &r)
 访问者模式:单函数访问器 (有返回值版本,非 const)。
template<size_t N, class F, class Ret>
std::enable_if<(N==sizeof...(Ts))>::type _visit1 (F &&, Ret &)
template<size_t N, class F, class Ret>
std::enable_if<(N< sizeof...(Ts))>::type _visit1 (F &&f, Ret &r) const
 访问者模式:单函数访问器 (有返回值版本,const)。
template<size_t N, class F, class Ret>
std::enable_if<(N==sizeof...(Ts))>::type _visit1 (F &&, Ret &) const
template<size_t N, class F>
std::enable_if<(N< sizeof...(Ts))>::type _visit2 (F &&f)
 访问者模式:单函数访问器 (无返回值版本,非 const)。
template<size_t N, class F>
std::enable_if<(N==sizeof...(Ts))>::type _visit2 (F &&)
template<size_t N, class F>
std::enable_if<(N< sizeof...(Ts))>::type _visit2 (F &&f) const
 访问者模式:单函数访问器 (无返回值版本,const)。
template<size_t N, class F>
std::enable_if<(N==sizeof...(Ts))>::type _visit2 (F &&) const
template<size_t N, class Ret, class F, class... Rest>
std::enable_if<(N< sizeof...(Ts))>::type _visit3 (Ret &r, F &&f, Rest &&...rest)
 访问者模式:多函数访问器 (有返回值版本,非 const)。
template<size_t N, class Ret, class F, class... Rest>
std::enable_if<(N==sizeof...(Ts))>::type _visit3 (Ret &, F &&, Rest &&...)
template<size_t N, class Ret, class F, class... Rest>
std::enable_if<(N< sizeof...(Ts))>::type _visit3 (Ret &r, F &&f, Rest &&...rest) const
 访问者模式:多函数访问器 (有返回值版本,const)。
template<size_t N, class Ret>
std::enable_if<(N==sizeof...(Ts))>::type _visit3 (Ret &) const
template<size_t N, class F, class... Rest>
std::enable_if<(N< sizeof...(Ts))>::type _visit4 (F &&f, Rest &&...rest)
 访问者模式:多函数访问器 (无返回值版本,非 const)。
template<size_t N>
std::enable_if<(N==sizeof...(Ts))>::type _visit4 ()
template<size_t N, class F, class... Rest>
std::enable_if<(N< sizeof...(Ts))>::type _visit4 (F &&f, Rest &&...rest) const
 访问者模式:多函数访问器 (无返回值版本,const)。
template<size_t N>
std::enable_if<(N==sizeof...(Ts))>::type _visit4 () const

Static Private Member Functions

template<class T>
static void deleter (void *ptr)
 类型特定的析构函数。
template<class T>
static void copier (void *dest, const void *src)
 类型特定的拷贝赋值函数 (就地拷贝)。
template<class T>
static void mover (void *dest, void *src)
 类型特定的移动赋值函数 (就地移动)。
template<class T>
static void cctor (void *dest, const void *src)
 类型特定的拷贝构造函数 (在未初始化的内存上构造)。
template<class T>
static void mctor (void *dest, void *src)
 类型特定的移动构造函数 (在未初始化的内存上构造)。

Private Attributes

char data_ [max< sizeof(Ts)... >::value]
 原始存储区,对齐到所有类型中最严格的要求。
size_t index_ {static_cast<size_t>(-1)}
 当前存储类型的索引,-1 表示空。
void(*) deleter_ (void *) = [](void *) {}
 析构函数指针。
void(*) copier_ (void *, const void *) = [](void *, const void *) {}
 拷贝赋值函数指针。
void(*) mover_ (void *, void *) = [](void *, void *) {}
 移动赋值函数指针。
void(*) cctor_ (void *, const void *) = [](void *, const void *) {}
 拷贝构造函数指针。
void(*) mctor_ (void *, void *) = [](void *, void *) {}
 移动构造函数指针。

Friends

template<class...>
class Union

Detailed Description

template<class... Ts>
class console::Union< Ts >

类型安全的可判别联合体。

类似于 std::variant,但实现方式更底层。 在任何时刻,Union 要么为空 (默认构造后),要么存储 Ts... 中某一类型的值。 所有操作均基于函数指针表实现,以减小代码体积。

Template Parameters
Ts允许存储的类型列表,不能包含重复类型或 void (除非作为唯一类型)。

Member Typedef Documentation

◆ type_at_t

template<class... Ts>
template<size_t N, class... Types>
using console::Union< Ts >::type_at_t = typename type_at<N, Types...>::type
private

Constructor & Destructor Documentation

◆ Union() [1/4]

template<class... Ts>
console::Union< Ts >::Union ( )
default

默认构造函数,构造一个空的 Union (不存储任何值)。

◆ ~Union()

template<class... Ts>
console::Union< Ts >::~Union ( )
inline

析构函数,销毁当前存储的值 (若有)。

◆ Union() [2/4]

template<class... Ts>
template<class T, class = typename std::enable_if< type_index<typename std::decay<T>::type, Ts...>::value != sizeof...(Ts)>::type>
console::Union< Ts >::Union ( T && value)
inline

从值构造 Union。

Template Parameters
T值的类型,必须是 Ts... 中的一种。
Parameters
value要存储的值。
Warning
若 T 不在 Ts... 中,则参与重载决议失败 (SFINAE)。

◆ Union() [3/4]

template<class... Ts>
console::Union< Ts >::Union ( const Union< Ts > & other)
inline

拷贝构造函数。

Parameters
other要拷贝的 Union。

◆ Union() [4/4]

template<class... Ts>
console::Union< Ts >::Union ( Union< Ts > && other)
inline

移动构造函数。

Parameters
other要移动的 Union。

Member Function Documentation

◆ _visit1() [1/4]

template<class... Ts>
template<size_t N, class F, class Ret>
std::enable_if<(N==sizeof...(Ts))>::type console::Union< Ts >::_visit1 ( F && ,
Ret &  )
inlineprivate

◆ _visit1() [2/4]

template<class... Ts>
template<size_t N, class F, class Ret>
std::enable_if<(N==sizeof...(Ts))>::type console::Union< Ts >::_visit1 ( F && ,
Ret &  ) const
inlineprivate

◆ _visit1() [3/4]

template<class... Ts>
template<size_t N, class F, class Ret>
std::enable_if<(N< sizeof...(Ts))>::type console::Union< Ts >::_visit1 ( F && f,
Ret & r )
inlineprivate

访问者模式:单函数访问器 (有返回值版本,非 const)。

Template Parameters
N当前递归索引。
F函数对象类型。
Ret返回值类型。
Parameters
f函数对象。
r用于存储返回值的引用。

◆ _visit1() [4/4]

template<class... Ts>
template<size_t N, class F, class Ret>
std::enable_if<(N< sizeof...(Ts))>::type console::Union< Ts >::_visit1 ( F && f,
Ret & r ) const
inlineprivate

访问者模式:单函数访问器 (有返回值版本,const)。

Template Parameters
N当前递归索引。
F函数对象类型。
Ret返回值类型。
Parameters
f函数对象。
r用于存储返回值的引用。

◆ _visit2() [1/4]

template<class... Ts>
template<size_t N, class F>
std::enable_if<(N==sizeof...(Ts))>::type console::Union< Ts >::_visit2 ( F && )
inlineprivate

◆ _visit2() [2/4]

template<class... Ts>
template<size_t N, class F>
std::enable_if<(N==sizeof...(Ts))>::type console::Union< Ts >::_visit2 ( F && ) const
inlineprivate

◆ _visit2() [3/4]

template<class... Ts>
template<size_t N, class F>
std::enable_if<(N< sizeof...(Ts))>::type console::Union< Ts >::_visit2 ( F && f)
inlineprivate

访问者模式:单函数访问器 (无返回值版本,非 const)。

Template Parameters
N当前递归索引。
F函数对象类型。
Parameters
f函数对象。

◆ _visit2() [4/4]

template<class... Ts>
template<size_t N, class F>
std::enable_if<(N< sizeof...(Ts))>::type console::Union< Ts >::_visit2 ( F && f) const
inlineprivate

访问者模式:单函数访问器 (无返回值版本,const)。

Template Parameters
N当前递归索引。
F函数对象类型。
Parameters
f函数对象。

◆ _visit3() [1/4]

template<class... Ts>
template<size_t N, class Ret>
std::enable_if<(N==sizeof...(Ts))>::type console::Union< Ts >::_visit3 ( Ret & ) const
inlineprivate

◆ _visit3() [2/4]

template<class... Ts>
template<size_t N, class Ret, class F, class... Rest>
std::enable_if<(N==sizeof...(Ts))>::type console::Union< Ts >::_visit3 ( Ret & ,
F && ,
Rest && ... )
inlineprivate

◆ _visit3() [3/4]

template<class... Ts>
template<size_t N, class Ret, class F, class... Rest>
std::enable_if<(N< sizeof...(Ts))>::type console::Union< Ts >::_visit3 ( Ret & r,
F && f,
Rest &&... rest )
inlineprivate

访问者模式:多函数访问器 (有返回值版本,非 const)。

Template Parameters
N当前递归索引。
Ret返回值类型。
F第一个函数对象类型。
Rest其余函数对象类型。
Parameters
r用于存储返回值的引用。
f当前索引对应的函数对象。
rest其余函数对象。

◆ _visit3() [4/4]

template<class... Ts>
template<size_t N, class Ret, class F, class... Rest>
std::enable_if<(N< sizeof...(Ts))>::type console::Union< Ts >::_visit3 ( Ret & r,
F && f,
Rest &&... rest ) const
inlineprivate

访问者模式:多函数访问器 (有返回值版本,const)。

Template Parameters
N当前递归索引。
Ret返回值类型。
F第一个函数对象类型。
Rest其余函数对象类型。
Parameters
r用于存储返回值的引用。
f当前索引对应的函数对象。
rest其余函数对象。

◆ _visit4() [1/4]

template<class... Ts>
template<size_t N>
std::enable_if<(N==sizeof...(Ts))>::type console::Union< Ts >::_visit4 ( )
inlineprivate

◆ _visit4() [2/4]

template<class... Ts>
template<size_t N>
std::enable_if<(N==sizeof...(Ts))>::type console::Union< Ts >::_visit4 ( ) const
inlineprivate

◆ _visit4() [3/4]

template<class... Ts>
template<size_t N, class F, class... Rest>
std::enable_if<(N< sizeof...(Ts))>::type console::Union< Ts >::_visit4 ( F && f,
Rest &&... rest )
inlineprivate

访问者模式:多函数访问器 (无返回值版本,非 const)。

Template Parameters
N当前递归索引。
F第一个函数对象类型。
Rest其余函数对象类型。
Parameters
f当前索引对应的函数对象。
rest其余函数对象。

◆ _visit4() [4/4]

template<class... Ts>
template<size_t N, class F, class... Rest>
std::enable_if<(N< sizeof...(Ts))>::type console::Union< Ts >::_visit4 ( F && f,
Rest &&... rest ) const
inlineprivate

访问者模式:多函数访问器 (无返回值版本,const)。

Template Parameters
N当前递归索引。
F第一个函数对象类型。
Rest其余函数对象类型。
Parameters
f当前索引对应的函数对象。
rest其余函数对象。

◆ cctor()

template<class... Ts>
template<class T>
void console::Union< Ts >::cctor ( void * dest,
const void * src )
inlinestaticprivate

类型特定的拷贝构造函数 (在未初始化的内存上构造)。

Template Parameters
T当前存储的类型。
Parameters
dest目标指针 (未初始化)。
src源指针 (已初始化)。

◆ copier()

template<class... Ts>
template<class T>
void console::Union< Ts >::copier ( void * dest,
const void * src )
inlinestaticprivate

类型特定的拷贝赋值函数 (就地拷贝)。

Template Parameters
T当前存储的类型。
Parameters
dest目标指针。
src源指针。

◆ deleter()

template<class... Ts>
template<class T>
void console::Union< Ts >::deleter ( void * ptr)
inlinestaticprivate

类型特定的析构函数。

Template Parameters
T当前存储的类型。
Parameters
ptr指向对象的指针。

◆ empty()

template<class... Ts>
bool console::Union< Ts >::empty ( ) const
inline

检查 Union 是否为空。

如果 Union 当前不存储任何值 (由默认构造函数构造),则返回 true。

Returns
bool 若 Union 为空则返回 true,否则返回 false。

◆ get() [1/2]

template<class... Ts>
template<class T>
T * console::Union< Ts >::get ( )
inline

按类型获取存储的值的指针。

Template Parameters
T要获取的类型。
Returns
T* 若当前存储的类型匹配 T,则返回指向值的指针;否则返回 nullptr。

◆ get() [2/2]

template<class... Ts>
template<class T>
const T * console::Union< Ts >::get ( ) const
inline

按类型获取存储的值的常量指针。

Template Parameters
T要获取的类型。
Returns
const T* 若当前存储的类型匹配 T,则返回指向值的常量指针;否则返回 nullptr。

◆ index()

template<class... Ts>
size_t console::Union< Ts >::index ( ) const
inline

获取当前存储类型的索引。

Returns
size_t 索引值,若 Union 为空则返回 size_t(-1)。

◆ mctor()

template<class... Ts>
template<class T>
void console::Union< Ts >::mctor ( void * dest,
void * src )
inlinestaticprivate

类型特定的移动构造函数 (在未初始化的内存上构造)。

Template Parameters
T当前存储的类型。
Parameters
dest目标指针 (未初始化)。
src源指针 (已初始化)。

◆ mover()

template<class... Ts>
template<class T>
void console::Union< Ts >::mover ( void * dest,
void * src )
inlinestaticprivate

类型特定的移动赋值函数 (就地移动)。

Template Parameters
T当前存储的类型。
Parameters
dest目标指针。
src源指针。

◆ operator=() [1/3]

template<class... Ts>
Union & console::Union< Ts >::operator= ( const Union< Ts > & other)
inline

拷贝赋值运算符。

Parameters
other要拷贝的 Union。
Returns
Union & 自身引用。

◆ operator=() [2/3]

template<class... Ts>
template<class T, class = typename std::enable_if< type_index<typename std::decay<T>::type, Ts...>::value != sizeof...(Ts)>::type>
Union & console::Union< Ts >::operator= ( T && value)
inline

赋值运算符,从值赋值。

Template Parameters
T值的类型,必须是 Ts... 中的一种。
Parameters
value要存储的值。
Returns
Union & 自身引用。
Warning
若 T 不在 Ts... 中,则参与重载决议失败 (SFINAE)。

◆ operator=() [3/3]

template<class... Ts>
Union & console::Union< Ts >::operator= ( Union< Ts > && other)
inline

移动赋值运算符。

Parameters
other要移动的 Union。
Returns
Union & 自身引用。

◆ visit() [1/8]

template<class... Ts>
template<class F>
auto console::Union< Ts >::visit ( F && f) -> typename std::enable_if< !has_void< decltype(f(std::declval< Ts & >()))... >::value, typename std::common_type< decltype(f( std::declval< Ts & >()))... >::type >::type
inline

使用单个函数对象访问存储的值 (有返回值版本,非 const)。

Template Parameters
F函数对象类型,必须能接受 Ts... 中的任意类型作为参数。
Parameters
f函数对象。
Returns
所有重载返回值的公共类型 (std::common_type)。
Note
若所有重载的返回值均为 void,则匹配无返回值版本的重载。 若对象为空 (由默认构造函数构造),则调用 std::terminate。

◆ visit() [2/8]

template<class... Ts>
template<class F>
auto console::Union< Ts >::visit ( F && f) -> typename std::enable_if< has_void< decltype(f(std::declval< Ts & >()))... >::value >::type
inline

使用单个函数对象访问存储的值 (无返回值版本,非 const)。

Template Parameters
F函数对象类型,必须能接受 Ts... 中的任意类型作为参数,且任一重载返回 void。
Parameters
f函数对象。
Note
若对象为空 (由默认构造函数构造),则调用 std::terminate。

◆ visit() [3/8]

template<class... Ts>
template<class F>
auto console::Union< Ts >::visit ( F && f) const -> typename std::enable_if< !has_void< decltype(f(std::declval< const Ts & >()))... >::value, typename std::common_type< decltype(f( std::declval< const Ts & >()))... >::type >::type
inline

使用单个函数对象访问存储的值 (有返回值版本,const)。

Template Parameters
F函数对象类型,必须能接受 Ts... 中的任意类型作为参数。
Parameters
f函数对象。
Returns
所有重载返回值的公共类型 (std::common_type)。
Note
若所有重载的返回值均为 void,则匹配无返回值版本的重载。 若对象为空 (由默认构造函数构造),则调用 std::terminate。

◆ visit() [4/8]

template<class... Ts>
template<class F>
auto console::Union< Ts >::visit ( F && f) const -> typename std::enable_if< has_void< decltype(f(std::declval< const Ts & >()))... >::value >::type
inline

使用单个函数对象访问存储的值 (无返回值版本,const)。

Template Parameters
F函数对象类型,必须能接受 Ts... 中的任意类型作为参数,且任一重载返回 void。
Parameters
f函数对象。
Note
若对象为空 (由默认构造函数构造),则调用 std::terminate。

◆ visit() [5/8]

template<class... Ts>
template<class... Fs>
auto console::Union< Ts >::visit ( Fs &&... fs) -> typename std::enable_if< !has_void< decltype(fs(std::declval< Ts & >()))... >::value, typename std::common_type< decltype(fs( std::declval< Ts & >()))... >::type >::type
inline

使用多个函数对象访问存储的值 (有返回值版本,非 const)。

每个类型对应一个函数对象,按索引匹配。

Template Parameters
Fs函数对象类型列表,数量必须与 Ts... 一致。
Parameters
fs函数对象列表。
Returns
所有函数对象返回值的公共类型 (std::common_type)。
Note
若任一函数对象返回 void,则匹配无返回值版本的重载。 若对象为空 (由默认构造函数构造),则调用 std::terminate。

◆ visit() [6/8]

template<class... Ts>
template<class... Fs>
auto console::Union< Ts >::visit ( Fs &&... fs) -> typename std::enable_if< has_void< decltype(fs(std::declval< Ts & >()))... >::value >::type
inline

使用多个函数对象访问存储的值 (无返回值版本,非 const)。

每个类型对应一个函数对象,按索引匹配。

Template Parameters
Fs函数对象类型列表,数量必须与 Ts... 一致,且任一重载返回 void。
Parameters
fs函数对象列表。
Note
若对象为空 (由默认构造函数构造),则调用 std::terminate。

◆ visit() [7/8]

template<class... Ts>
template<class... Fs>
auto console::Union< Ts >::visit ( Fs &&... fs) const -> typename std::enable_if< !has_void< decltype(fs(std::declval< const Ts & >()))... >::value, typename std::common_type< decltype(fs( std::declval< const Ts & >()))... >::type >::type
inline

使用多个函数对象访问存储的值 (有返回值版本,const)。

每个类型对应一个函数对象,按索引匹配。

Template Parameters
Fs函数对象类型列表,数量必须与 Ts... 一致。
Parameters
fs函数对象列表。
Returns
所有函数对象返回值的公共类型 (std::common_type)。
Note
若任一函数对象返回 void,则匹配无返回值版本的重载。 若对象为空 (由默认构造函数构造),则调用 std::terminate。

◆ visit() [8/8]

template<class... Ts>
template<class... Fs>
auto console::Union< Ts >::visit ( Fs &&... fs) const -> typename std::enable_if< has_void< decltype(fs( std::declval< const Ts & >()))... >::value >::type
inline

使用多个函数对象访问存储的值 (无返回值版本,const)。

每个类型对应一个函数对象,按索引匹配。

Template Parameters
Fs函数对象类型列表,数量必须与 Ts... 一致,且任一重载返回 void。
Parameters
fs函数对象列表。
Note
若对象为空 (由默认构造函数构造),则调用 std::terminate。

◆ Union

template<class... Ts>
template<class...>
friend class Union
friend

Member Data Documentation

◆ cctor_

template<class... Ts>
void(*) console::Union< Ts >::cctor_(void *, const void *) = [](void *, const void *) {}
private

拷贝构造函数指针。

◆ copier_

template<class... Ts>
void(*) console::Union< Ts >::copier_(void *, const void *) = [](void *, const void *) {}
private

拷贝赋值函数指针。

◆ data_

template<class... Ts>
char console::Union< Ts >::data_[max< sizeof(Ts)... >::value]
private

原始存储区,对齐到所有类型中最严格的要求。

◆ deleter_

template<class... Ts>
void(*) console::Union< Ts >::deleter_(void *) = [](void *) {}
private

析构函数指针。

◆ index_

template<class... Ts>
size_t console::Union< Ts >::index_ {static_cast<size_t>(-1)}
private

当前存储类型的索引,-1 表示空。

◆ mctor_

template<class... Ts>
void(*) console::Union< Ts >::mctor_(void *, void *) = [](void *, void *) {}
private

移动构造函数指针。

◆ mover_

template<class... Ts>
void(*) console::Union< Ts >::mover_(void *, void *) = [](void *, void *) {}
private

移动赋值函数指针。


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