Console Library 8.0.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
union.h File Reference

提供类型安全的可判别联合体 (Tagged Union)。 More...

#include <cstddef>
#include <cstring>
#include <exception>
#include <new>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Classes

class  console::Union< Ts >
 类型安全的可判别联合体。 More...
struct  console::Union< Ts >::type_at< 0, T, Rest... >
struct  console::Union< Ts >::type_at< N, T, Rest... >
struct  console::Union< Ts >::type_index< T >
struct  console::Union< Ts >::type_index< T, U, Rest... >
struct  console::Union< Ts >::max< N >
struct  console::Union< Ts >::max< N, Ns... >
struct  console::Union< Ts >::has_void< T >
struct  console::Union< Ts >::has_void< T, Rest... >
struct  console::ignore_t
 忽略任意参数的函数对象类型。 More...

Namespaces

namespace  console
 本库所有组件所在的顶层命名空间。

Macros

#define TERMINATE_FOR_EXCEPTION(...)
 宏:在异常发生时调用 std::terminate。

Variables

static constexpr ignore_t console::ignore
 全局 ignore 实例,可用于忽略任意参数。

Detailed Description

提供类型安全的可判别联合体 (Tagged Union)。

包含模板类 Union,支持存储多种类型中的一种,并提供类型安全的访问和访问者模式。 所有类型必须是完整的、可析构的。若构造/拷贝/移动过程中抛出异常,将调用 std::terminate。

Author
MrXie1109
Date
2026

Macro Definition Documentation

◆ TERMINATE_FOR_EXCEPTION

#define TERMINATE_FOR_EXCEPTION ( ...)
Value:
try { \
__VA_ARGS__; \
} catch (...) { \
std::terminate(); \
}

宏:在异常发生时调用 std::terminate。

用于包装构造/拷贝/移动操作,保证强异常安全 (一旦抛出异常则终止程序)。