Tool/software: TI C/C++ Compiler
I register several DataItems to our DataService in the Form:
m_dataService_p->registerPullData<ControlService::Command::DataValid>(m_ControlInterface_p, &isDataValid);
where DataItem is like:
struct DataValid{
public :
typedef DataValid data_type;
typedef bool_t value_type;
using data_owner_type = owner_type;
static const std::type_index container_id;
static const std::type_index data_id;
static const 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));
and registred Function is bool_t isDataValid().
Here out registration Function:
void registerPullData(std::shared_ptr<TDevice> device_p,TMemberFunc memberGetFunction_p,std::size_t instance)
If needed I can send detailed informations to the DataService internals.
The Problem is that if i register more member funtions at one point TI-Optimizer v.8.3.1 is out of space independently of data item or function..
Compilation is ok in Debug and Optimization level O0. In O3 compilation fails.
Here the Taskinformation just before Optimizer fails.
Here the blanked out Compiler Message:
My opinion it that the usage of templates blows up the optimizer memory usage.