在提升中,是否可以从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
。
提前感谢您的建议。
答案 0 :(得分:0)
简答:不。
更长的答案:通过类型擦除和大量模板元编程,一切皆有可能。
如果你觉得你真的需要这个,可以先使用例如.Boost功能或Boost Erasure,或者发布一个更详细的目标和你被卡住的地方的问题。有太多方法可以解释“将一个新的boost :: accumulators :: stats容器分配给accumulator_set,我可以从字符串中指定一些boost :: accumulators :: tag”。
如果组合有限,Boost Variant就是你的朋友。否则,Boost Any和...许多特殊情况来提取结果。这将是/ lot /元编程,但
实际上,如果你能负担得起,为什么不使用“max featured”累加器集,只根据文本配置公开一次?你在运行时需要做的工作量超过需要,但是你可以在开发方面节省大量的工作。