Удалить или изменить accumulators::tag из accumulator_set

В boost можно ли динамически удалить данный 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.

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


person Deadloop    schedule 08.01.2015    source источник


Ответы (1)


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

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

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

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

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

person sehe    schedule 08.01.2015