我想从一组可变模板参数中静态embedded程序代码(最好在ROM部分)中描述持久化存储器布局(例如Flash或EEPROM器件),其中必要的偏移量在编译时自动计算。 目标是创build一个合适的数组初始值设定项,它可以在运行时迭代,而不受std::get(std::tuple)获得的限制,这需要编译时间索引。 第一种方法 我已经创build了一个简单的数据项描述符类,它绑定了一个特定的ID(应该作为客户端的枚举types提供)到数据布局(offset和size): template < typename ItemIdType > struct DataItemDescBase { const ItemIdType id; const std::size_t size; const std::size_t offset; DataItemDescBase(ItemIdType id_, std::size_t size_, std::size_t offset_) : id(id_) , size(size_) , offset(offset_) { } DataItemDescBase(const DataItemDescBase<ItemIdType>& rhs) : id(rhs.id) , size(rhs.size) , offset(rhs.offset) { } }; 客户端应该使用绑定到特定数据types和偏移量的类: template < typename DataType , typename ItemIdType […]