Удалить или изменить аккумуляторы :: тег из аккумулятора_сет

В бусте можно ли удалить данный boost::accumulators::tag динамически от accumulator_set?

typedef boost::accumulators::features <
boost::accumulators::tag::count,
boost::accumulators::tag::max,
boost::accumulators::tag::min,
boost::accumulators::tag::mean,
boost::accumulators::tag::variance,
boost::accumulators::tag::skewness,
boost::accumulators::tag::kurtosis,
> StatisticalFeatures;
accumulator_set<double, boost::accumulators::stats<StatisticalFeatures>> acc;

Или, альтернативно, назначить новый boost::accumulators::stats контейнер к accumulator_set где я могу указать некоторые boost::accumulators::tag из строки Например, если строка min,max,meanтогда я хочу создать новый
accumulator_set<double,bost::accumulators::stats<boost::accumulators::tag::min,boost::accumulators::tag::max,boost::accumulators::tag::mean>> acc,

Заранее спасибо за совет.

1

Решение

Краткий ответ: нет.

Более длинный ответ: со стиранием типов и большим количеством метапрограммирования шаблонов все возможно.

Если вы чувствуете, что вам действительно это нужно, начните с использования, например, функции Boost или Boost Erasure, или опубликуйте вопрос с более подробной целью и местом, где вы застряли. Есть слишком много способов, которыми можно интерпретировать «назначить новый контейнер Boost :: аккумуляторы :: статистика для набора аккумуляторов, в котором я могу указать какой-нибудь Boost :: аккумуляторы :: тег из строки».

Если комбинации ограничены, Boost Variant — ваш друг. В противном случае, Boost Any и … множество особых случаев для извлечения результатов. Это будет / много / метапрограммирование, хотя

На самом деле, если вы можете себе это позволить, почему бы не использовать набор аккумуляторов «max featured» и раскрыть его только один раз в соответствии с текстовой конфигурацией? Вы бы выполнили больше работы, чем необходимо во время выполнения, но вы бы сэкономили огромные усилия на стороне разработки.

0

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector