22#ifndef _SEFRAMEWORK_OUTPUTREGISTRY_H
23#define _SEFRAMEWORK_OUTPUTREGISTRY_H
41 template <
typename PropertyType,
typename OutType>
46 template <
typename PropertyType,
typename OutType>
63 template <
typename PropertyType>
76 for (
auto instance : instance_names) {
78 auto new_converter = converter;
79 new_converter.second.index = instance.second;
81 auto& postfix = instance.first;
82 auto new_name = current_name +
"_" + postfix;
85 new_names.push_back(new_name);
99 template <
typename PropertyType>
111 for (
auto instance : instance_names) {
113 auto new_converter = converter;
114 new_converter.second.index = instance.second;
116 auto& new_name = instance.first;
119 new_names.push_back(new_name);
141 template <
typename PropertyType>
145 <<
" property " <<
typeid(PropertyType).name();
166 template <
typename PropertyType,
typename OutType>
169 return converter(source.
getProperty<PropertyType>(i));
T back_inserter(T... args)
boost::variant< bool, int32_t, int64_t, float, double, std::string, std::vector< bool >, std::vector< int32_t >, std::vector< int64_t >, std::vector< float >, std::vector< double >, NdArray::NdArray< int32_t >, NdArray::NdArray< int64_t >, NdArray::NdArray< float >, NdArray::NdArray< double > > cell_type
ColumnFromSource(ColumnConverter< PropertyType, OutType > converter)
std::function< Euclid::Table::Row::cell_type(const SourceInterface &, std::size_t index)> m_convert_func
Euclid::Table::Row::cell_type operator()(const SourceInterface &source)