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

#include <KernelPool.hpp>

Public 类型

enum  DataType { eDouble = 0 , eInt = 1 , eChar = 2 }
 

Public 成员函数

 KernelData (const std::vector< double > &doubleData)
 
 KernelData (const std::vector< int > &intData)
 
 KernelData (const std::vector< char > &charData)
 
 KernelData (const KernelData &other)
 
 KernelData (KernelData &&other)
 
KernelDataoperator= (const KernelData &other)
 
KernelDataoperator= (KernelData &&other)
 
const std::vector< double > * getDoubleData () const
 
const std::vector< int > * getIntData () const
 
const std::vector< char > * getCharData () const
 

Protected 属性

std::vector< double > doubleData_
 
std::vector< int > intData_
 
std::vector< char > charData_
 

详细描述

SPICE 数据容器

该类用于存储从 SPICE 内核文件加载的不同类型的数据 使得在 SPICE 内核文件中加载不同类型的数据变得更加方便和高效

注解
std::vector<double>, std::vector<int>, std::vector<char>的内存布局是相同的,都是3个指针 对于这个数据容器类型,统一通过charData_来进行复制、移动、析构 这确保了不同类型的数据容器可以在相同的内存布局下进行存储和操作 通过指针之间的地址差,判断是否可以安全地直接将一个数据容器转换为另一个数据容器 例如将一个char类型的数据容器转换为double类型的数据容器, 只需要判断地址差是否为sizeof(double)的整数倍即可
待办事项
使用union不太合适,考虑其他的实现方式

该联合体的文档由以下文件生成: