boostorg / boostorg/accumulators
Compiling error when using density within a features set.
- Dominant language
- C++
- Stars
- 26
- Forks
- 61
- PR merge metrics
- No merged PRs in 30d
Description
The following code snipped generates compiler errors:
```
#include
#include
#include
using namespace boost::accumulators;
using namespace boost;
typedef accumulator_set> histogram_type;
int main(int argc, char*argv[])
{
histogram_type hist;
hist(1.0);
hist(2.0);
return 0;
}
```
It compiles without problems when removing the `features` tag such that the line reads
```
typedef accumulator_set histogram_type;
```
The examples from the documentation uses the `features` tag together with `density`.
### Error Output
```
In file included from /usr/local/include/boost/accumulators/statistics.hpp:14,
from hist.cpp:2:
/usr/local/include/boost/accumulators/statistics/density.hpp: In constructor ‘boost::accumulators::impl::density_impl::density_impl(const Args&) [with Args = boost::parameter::aux::arg_list, void> >, boost::parameter::aux::empty_arg_list>, Sample = double]’:
/usr/local/include/boost/accumulators/framework/depends_on.hpp:319: instantiated from ‘boost::accumulators::detail::accumulator_wrapper::accumulator_wrapper(const Args&) [with Args = boost::parameter::aux::arg_list, void> >, boost::parameter::aux::empty_arg_list>, Accumulator = boost::accumulators::impl::density_impl, Feature = boost::accumulators::tag::density]’
/usr/local/include/boost/accumulators/framework/depends_on.hpp:252: instantiated from ‘static boost::fusion::cons::type, typename boost::accumulators::detail::build_acc_list::type, Last, boost::fusion::result_of::equal_to::value>::type> boost::accumulators::detail::build_acc_list::call(const Args&, const First&, const Last&) [with Args = boost::parameter::aux::arg_list, void> >, boost::parameter::aux::empty_arg_list>, First = boost::fusion::mpl_iterator, boost::accumulators::tag::density>, boost::mpl::v_item, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::min>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 3l> >, Last = boost::fusion::mpl_iterator, boost::accumulators::tag::density>, boost::mpl::v_item, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::min>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 4l> >]’
/usr/local/include/boost/accumulators/framework/depends_on.hpp:252: instantiated from ‘static boost::fusion::cons::type, typename boost::accumulators::detail::build_acc_list::type, Last, boost::fusion::result_of::equal_to::value>::type> boost::accumulators::detail::build_acc_list::call(const Args&, const First&, const Last&) [with Args = boost::parameter::aux::arg_list, void> >, boost::parameter::aux::empty_arg_list>, First = boost::fusion::mpl_iterator, boost::accumulators::tag::density>, boost::mpl::v_item, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::min>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 2l> >, Last = boost::fusion::mpl_iterator, boost::accumulators::tag::density>, boost::mpl::v_item, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::min>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 4l> >]’
/usr/local/include/boost/accumulators/framework/depends_on.hpp:252: instantiated from ‘static boost::fusion::cons::type, typename boost::accumulators::detail::build_acc_list::type, Last, boost::fusion::result_of::equal_to::value>::type> boost::accumulators::detail::build_acc_list::call(const Args&, const First&, const Last&) [with Args = boost::parameter::aux::arg_list, void> >, boost::parameter::aux::empty_arg_list>, First = boost::fusion::mpl_iterator, boost::accumulators::tag::density>, boost::mpl::v_item, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::min>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 1l> >, Last = boost::fusion::mpl_iterator, boost::accumulators::tag::density>, boost::mpl::v_item, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::min>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 4l> >]’
/usr/local/include/boost/accumulators/framework/depends_on.hpp:252: instantiated from ‘static boost::fusion::cons::type, typename boost::accumulators::detail::build_acc_list::type, Last, boost::fusion::result_of::equal_to::value>::type> boost::accumulators::detail::build_acc_list::call(const Args&, const First&, const Last&) [with Args = boost::parameter::aux::arg_list, void> >, boost::parameter::aux::empty_arg_list>, First = boost::fusion::mpl_iterator, boost::accumulators::tag::density>, boost::mpl::v_item, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::min>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0l> >, Last = boost::fusion::mpl_iterator, boost::accumulators::tag::density>, boost::mpl::v_item, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::min>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 4l> >]’
/usr/local/include/boost/accumulators/framework/depends_on.hpp:271: instantiated from ‘typename boost::accumulators::detail::meta::make_acc_list::type boost::accumulators::detail::make_acc_list(const Sequence&, const Args&) [with Sequence = boost::mpl::v_item, boost::accumulators::tag::density>, boost::mpl::v_item, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::min>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, Args = boost::parameter::aux::arg_list, void> >, boost::parameter::aux::empty_arg_list>]’
/usr/local/include/boost/accumulators/framework/accumulator_set.hpp:145: instantiated from ‘boost::accumulators::accumulator_set::accumulator_set() [with Sample = double, Features = boost::accumulators::features, Weight = void]’
hist.cpp:12: instantiated from here
/usr/local/include/boost/accumulators/statistics/density.hpp:84: error: no match for ‘operator[]’ in ‘args[boost::accumulators::::density_cache_size]’
/usr/local/include/boost/parameter/aux_/arg_list.hpp:327: note: candidates are: typename boost::mpl::eval_if::type, boost::parameter::aux::get_reference, boost::parameter::aux::get_reference >::type boost::parameter::aux::arg_list::operator[](const boost::parameter::keyword&) const [with TaggedArg = boost::parameter::aux::tagged_argument, void> >, Next = boost::parameter::aux::empty_arg_list]
/usr/local/include/boost/accumulators/statistics/density.hpp:84: error: no match for ‘operator[]’ in ‘args[boost::accumulators::::density_num_bins]’
/usr/local/include/boost/parameter/aux_/arg_list.hpp:327: note: candidates are: typename boost::mpl::eval_if::type, boost::parameter::aux::get_reference, boost::parameter::aux::get_reference >::type boost::parameter::aux::arg_list::operator[](const boost::parameter::keyword&) const [with TaggedArg = boost::parameter::aux::tagged_argument, void> >, Next = boost::parameter::aux::empty_arg_list]
```
### Version
Boost v1.61, gnu g++ v4.4.5
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.