2015-01-08 4 views
1

В boost, можно ли удалить заданный boost::accumulators::tag динамически с accumulator_set?Удалить или изменить аккумуляторы :: tag from 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.

Заранее благодарим за ваш совет.

ответ

0

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

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

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^