id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 4730,Limited number of tagged arguments in the accumulator_set constructor ?,AdrienTodeschini ,Eric Niebler,"It seems that we can't use more than 4 tagged arguments in the accumulator_set constructor. Here is an example code to demonstrate my remark : {{{#!c++ using namespace std; using namespace boost::accumulators; typedef accumulator_set, double> AccType1; typedef accumulator_set, double> AccType2; typedef accumulator_set, double> AccType3; double probs[] = {0.01,0.05, 0.25, 0.33, 0.5, 0.67, 0.75, 0.95, 0.99}; vector q_probs(probs, probs + sizeof(probs) / sizeof(double)); AccType1 acc1(tag::weighted_density::cache_size = 10, tag::weighted_density::num_bins = 10, tag::weighted_extended_p_square::probabilities = q_probs, tag::weighted_p_square_cumulative_distribution::num_cells = 10); // compiles (4 tagged arguments) AccType1 acc2(sample = 42, tag::weighted_density::cache_size = 10, tag::weighted_density::num_bins = 10, tag::weighted_extended_p_square::probabilities = q_probs, tag::weighted_p_square_cumulative_distribution::num_cells = 10); // Error : does not compile (5 tagged arguments) AccType2 acc3(sample = 42, tag::weighted_density::cache_size = 10, tag::weighted_density::num_bins = 10, tag::weighted_p_square_cumulative_distribution::num_cells = 10); // compiles (4 tagged arguments) AccType3 acc4(sample = 42, tag::weighted_density::cache_size = 10, tag::weighted_density::num_bins = 10, tag::weighted_extended_p_square::probabilities = q_probs); // compiles (4 tagged arguments) }}} Moreover, I tried {{{#!c++ #define BOOST_PARAMETER_MAX_ARITY 10 }}} but it does not solve the problem. The error message from GCC 4.4.3 compiler is : {{{ In file included from /usr/include/boost/accumulators/accumulators.hpp:12, from /sandbox.hpp:13, from ../BiipsTest.cpp:11: /usr/include/boost/accumulators/framework/accumulator_set.hpp: In constructor ‘boost::accumulators::accumulator_set::accumulator_set(const A0&, const A1&, const A2&, const A3&, const A4&) [with A0 = boost::parameter::aux::tagged_argument, A1 = boost::parameter::aux::tagged_argument, const int>, A2 = boost::parameter::aux::tagged_argument, const int>, A3 = boost::parameter::aux::tagged_argument, std::vector > >, A4 = boost::parameter::aux::tagged_argument, const int>, Sample = int, Features = boost::accumulators::features, Weight = double]’: /sandbox.hpp:90: instantiated from here /usr/include/boost/accumulators/framework/accumulator_set.hpp:200: error: no match for call to ‘(boost::accumulators::detail::accumulator_params) (boost::accumulators::accumulator_set, double>&, const boost::parameter::aux::tagged_argument&, const boost::parameter::aux::tagged_argument, const int>&, const boost::parameter::aux::tagged_argument, const int>&, const boost::parameter::aux::tagged_argument, std::vector > >&, const boost::parameter::aux::tagged_argument, const int>&)’ /usr/include/boost/parameter/parameters.hpp:841: note: candidates are: boost::parameter::aux::empty_arg_list boost::parameter::parameters::operator()() const [with PS0 = boost::parameter::required, PS1 = boost::parameter::optional, PS2 = boost::parameter::void_, PS3 = boost::parameter::void_, PS4 = boost::parameter::void_] }}}",Bugs,closed,To Be Determined,accumulator,Boost 1.40.0,Problem,worksforme,,eric@…