工具/软件:TI C/C++编译器
我以以下形式向 DataService 注册多个 DataItems:
m_dataservice_p->registerPullData (M_ControlInterface_p、&isDataValid);
其中 DataItem 类似于:
struct DataValid{
公开:
typedef DataValid data_type;
typedef bool_t value_type;
使用 data_owner_type = owner_type;
静态常量 std::type_index container_id;
静态常量 std::type_index data_id;
静态常量 std::type_index owner_id;
};
const std::type_index ControlService::Command:DataValid::container_id (typeid (container_type));
const std::type_index ControlService::Command:DataValid::data_id (typeid (data_type));
const std::type_index ControlService::Command:DataValid::owner_id (typeid (owner_type));
寄存器函数是 bol_t isDataValid()。
此处显示注册函数:
void registerPullData (std:shared_ptr device_p、TMemberFunc memberGetFunction_p、std::size_t 实例)
如果需要、我可以向 DataService 内部人员发送详细信息。
问题是、如果我在某个点上注册了更多成员功能、TI-Optimizer v.8.3.1将会超出空间、而与数据项或函数无关。
在调试和优化级别 O0中、编译正常。 在 O3编译中失败。
此处、Optimizer 之前的任务信息失败。
此处显示消隐的编译器消息:
我认为模板的使用会影响优化器的内存使用。

