🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ast::VariantVector类 参考

#include <VariantVector.hpp>

struct  TypeOps
 

Public 成员函数

 VariantVector (const VariantVector &other)
 
VariantVectoroperator= (const VariantVector &other)
 
 VariantVector (VariantVector &&other) noexcept
 
VariantVectoroperator= (VariantVector &&other) noexcept
 
size_t size () const noexcept
 
size_t capacity () const noexcept
 
bool empty () const noexcept
 
const std::type_info & elementType () const noexcept
 
bool hasType () const noexcept
 
size_t elementSize () const noexcept
 
const TypeOpsops () const noexcept
 
void * data () noexcept
 
const void * data () const noexcept
 
template<typename T >
void reserve (size_t n)
 
template<typename T >
void resize (size_t n)
 
template<typename T >
void resize (size_t n, const T &value)
 
template<typename T >
void reset (size_t n)
 
template<typename T >
void reset (size_t n, const T &value)
 
template<typename T >
void pushBack (const T &value)
 
template<typename T , typename... Args>
void emplaceBack (Args &&... args)
 
void clear ()
 
void shrinkToFit ()
 
template<typename T >
Tas ()
 
template<typename T >
const Tas () const
 
template<typename T >
Span< TasSpan ()
 
template<typename T >
Span< const TasSpan () const
 
template<typename T >
Tat (size_t i)
 
template<typename T >
const Tat (size_t i) const
 
template<typename T >
Tbegin ()
 
template<typename T >
const Tbegin () const
 
template<typename T >
Tend ()
 
template<typename T >
const Tend () const
 
void swap (VariantVector &other) noexcept
 

静态 Public 成员函数

template<typename T >
static VariantVector fromVector (const std::vector< T > &vec)
 

详细描述

变类型向量容器

该类可以存储不同数据类型的向量,无需在编译时指定具体类型, 但一次只能存储一种特定类型的数据。

类型元数据(TypeOps*、type_info*、elementSize)嵌入在分配块头部, data_ 指针永远指向第一个元素。data_ == nullptr 表示未设置类型。

使用方式:

v.resize<double>(100); // 首次调用确定类型为 double
v[0] = 3.14; // 类型安全访问
assert(v.elementType() == typeid(double));
变类型向量容器
定义 VariantVector.hpp:59
const std::type_info & elementType() const noexcept
获取元素类型(未设置类型时返回 typeid(void) 作为哨兵)
定义 VariantVector.cpp:29

该类的文档由以下文件生成: