存储多个 Item 的异构容器。
More...
#include <box.h>
|
| template<class... Args> |
| | Box (Args &&...args) |
| | 从任意数量、任意类型的值构造 Box。
|
| template<class T> |
| T & | get (size_t index) |
| | 类型安全地获取指定索引处的元素(非常量版本)。
|
| template<typename T> |
| T & | unsafe_get (size_t index) |
| | 不安全地获取指定索引处的元素(非常量版本)。
|
| template<class... Args> |
| void | unpack (Args &...args) |
| | 将 Box 中的元素按顺序解包到多个变量中(类型安全)。
|
| template<class... Args> |
| void | unsafe_unpack (Args &...args) |
| | 将 Box 中的元素按顺序解包到多个变量中(不安全版本)。
|
|
| std::ostream & | operator<< (std::ostream &os, const Box &box) |
| | 将 Box 输出到流,格式类似于元组 (elem1, elem2, ...)。
|
存储多个 Item 的异构容器。
公有继承自 std::vector<Item>,支持从多个任意类型的值直接构造, 并提供类型安全的元素访问和解包功能。
◆ Box()
template<class... Args>
| console::Box::Box |
( |
Args &&... | args | ) |
|
|
inline |
从任意数量、任意类型的值构造 Box。
- Template Parameters
-
- Parameters
-
| args | 要存储的值(每个值都会被隐式转换为 Item)。 |
◆ get()
template<class T>
| T & console::Box::get |
( |
size_t | index | ) |
|
|
inline |
类型安全地获取指定索引处的元素(非常量版本)。
- Template Parameters
-
- Parameters
-
- Returns
- T& 元素的引用。
- Exceptions
-
◆ unpack()
template<class... Args>
| void console::Box::unpack |
( |
Args &... | args | ) |
|
|
inline |
将 Box 中的元素按顺序解包到多个变量中(类型安全)。
- Template Parameters
-
- Parameters
-
- Note
- 若元素数量或类型不匹配会抛出 bad_get 异常。
◆ unsafe_get()
template<typename T>
| T & console::Box::unsafe_get |
( |
size_t | index | ) |
|
|
inline |
不安全地获取指定索引处的元素(非常量版本)。
- Template Parameters
-
- Parameters
-
- Returns
- T& 元素的引用。
- Warning
- 不检查索引越界和类型匹配,可能导致未定义行为。
◆ unsafe_unpack()
template<class... Args>
| void console::Box::unsafe_unpack |
( |
Args &... | args | ) |
|
|
inline |
将 Box 中的元素按顺序解包到多个变量中(不安全版本)。
- Template Parameters
-
- Parameters
-
- Warning
- 不进行任何类型或边界检查,需确保 Box 大小和类型与参数包完全匹配。
◆ operator<<
| std::ostream & operator<< |
( |
std::ostream & | os, |
|
|
const Box & | box ) |
|
friend |
将 Box 输出到流,格式类似于元组 (elem1, elem2, ...)。
- Parameters
-
- Returns
- std::ostream& 返回 os。
The documentation for this class was generated from the following file: