从accumulator_set中删除或修改accumulators ::标签

时间:2015-01-08 21:46:17

标签: c++ boost accumulator

在提升中,是否可以从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 个答案:

答案 0 :(得分:0)

简答:不。

更长的答案:通过类型擦除和大量模板元编程,一切皆有可能。

如果你觉得你真的需要这个,可以先使用例如.Boost功能或Boost Erasure,或者发布一个更详细的目标和你被卡住的地方的问题。有太多方法可以解释“将一个新的boost :: accumulators :: stats容器分配给accumulator_set,我可以从字符串中指定一些boost :: accumulators :: tag”。

如果组合有限,Boost Variant就是你的朋友。否则,Boost Any和...许多特殊情况来提取结果。这将是/ lot /元编程,但

实际上,如果你能负担得起,为什么不使用“max featured”累加器集,只根据文本配置公开一次?你在运行时需要做的工作量超过需要,但是你可以在开发方面节省大量的工作。