Open alezz94 opened 1 year ago
Hi,
I noticed that at least from Boost 1.79 with GCC 11.2 I get a lot of deprecated-copy warnings when using boost::accumlators library:
#include <boost/accumulators/accumulators.hpp> #include <boost/accumulators/statistics/stats.hpp> #include <boost/accumulators/statistics/mean.hpp> #include <boost/accumulators/statistics/moment.hpp> using namespace boost::accumulators; int main() { accumulator_set<double, stats<tag::mean, tag::moment<2> > > acc; return 0; }
Output:
In file included from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/accumulators.hpp:12, from prog.cc:1: /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp: In instantiation of 'void boost::accumulators::accumulator_set<Sample, Features, Weight>::visit_if(const UnaryFunction&) [with FilterPred = boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > >; UnaryFunction = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; Sample = double; Features = boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> >; Weight = void]': /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:175:73: required from 'boost::accumulators::accumulator_set<Sample, Features, Weight>::accumulator_set() [with Sample = double; Features = boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> >; Weight = void]' prog.cc:9:65: required from here /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:314:25: warning: implicitly-declared 'constexpr boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >::add_ref_visitor(const boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >&)' is deprecated [-Wdeprecated-copy] 314 | fusion::for_each(filtered_accs, func); | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ In file included from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:35, from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/accumulators.hpp:12, from prog.cc:1: /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulators/droppable_accumulator.hpp:52:30: note: because 'boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >' has user-provided 'boost::accumulators::detail::add_ref_visitor<Args>& boost::accumulators::detail::add_ref_visitor<Args>::operator=(const boost::accumulators::detail::add_ref_visitor<Args>&) [with Args = boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > >]' 52 | add_ref_visitor &operator =(add_ref_visitor const &); | ^~~~~~~~ In file included from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/include/for_each.hpp:11, from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:38, from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/accumulators.hpp:12, from prog.cc:1: /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/for_each.hpp:33:31: note: initializing argument 2 of 'constexpr typename boost::enable_if<boost::fusion::traits::is_sequence<Sequence> >::type boost::fusion::for_each(Sequence&, F) [with Sequence = boost::fusion::filter_view<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > >, boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; typename boost::enable_if<boost::fusion::traits::is_sequence<Sequence> >::type = void]' 33 | for_each(Sequence& seq, F f) | ~~^ In file included from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/accumulators.hpp:12, from prog.cc:1: /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp: In instantiation of 'void boost::accumulators::accumulator_set<Sample, Features, Weight>::visit_if(const UnaryFunction&) [with FilterPred = boost::accumulators::detail::contains_feature_of_<boost::mpl::v_item<boost::accumulators::tag::sum, boost::mpl::v_item<boost::accumulators::tag::count, boost::mpl::vector0<mpl_::na>, 0>, 0> >; UnaryFunction = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; Sample = double; Features = boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> >; Weight = void]': /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulators/droppable_accumulator.hpp:46:74: required from 'void boost::accumulators::detail::add_ref_visitor<Args>::operator()(Accumulator&) const [with Accumulator = boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>; Args = boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > >]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/detail/for_each.hpp:35:10: required from 'constexpr void boost::fusion::detail::for_each_linear(const First&, const Last&, F&, mpl_::false_) [with First = boost::fusion::filter_iterator<boost::fusion::forward_traversal_tag, boost::fusion::cons_iterator<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > > >, boost::fusion::cons_iterator<boost::fusion::nil_>, boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > >; Last = boost::fusion::filter_iterator<boost::fusion::forward_traversal_tag, boost::fusion::cons_iterator<boost::fusion::nil_>, boost::fusion::cons_iterator<boost::fusion::nil_>, boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; mpl_::false_ = mpl_::bool_<false>]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/detail/for_each.hpp:46:32: required from 'constexpr void boost::fusion::detail::for_each_dispatch(Sequence&, F&, Tag) [with Sequence = boost::fusion::filter_view<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > >, boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; Tag = boost::fusion::forward_traversal_tag]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/detail/for_each.hpp:143:34: required from 'constexpr void boost::fusion::detail::for_each(Sequence&, F&, mpl_::false_) [with Sequence = boost::fusion::filter_view<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > >, boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; mpl_::false_ = mpl_::bool_<false>]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/for_each.hpp:35:25: required from 'constexpr typename boost::enable_if<boost::fusion::traits::is_sequence<Sequence> >::type boost::fusion::for_each(Sequence&, F) [with Sequence = boost::fusion::filter_view<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > >, boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; typename boost::enable_if<boost::fusion::traits::is_sequence<Sequence> >::type = void]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:314:25: required from 'void boost::accumulators::accumulator_set<Sample, Features, Weight>::visit_if(const UnaryFunction&) [with FilterPred = boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > >; UnaryFunction = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; Sample = double; Features = boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> >; Weight = void]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:175:73: required from 'boost::accumulators::accumulator_set<Sample, Features, Weight>::accumulator_set() [with Sample = double; Features = boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> >; Weight = void]' prog.cc:9:65: required from here /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:314:25: warning: implicitly-declared 'constexpr boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >::add_ref_visitor(const boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >&)' is deprecated [-Wdeprecated-copy] 314 | fusion::for_each(filtered_accs, func); | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ In file included from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:35, from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/accumulators.hpp:12, from prog.cc:1: /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulators/droppable_accumulator.hpp:52:30: note: because 'boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >' has user-provided 'boost::accumulators::detail::add_ref_visitor<Args>& boost::accumulators::detail::add_ref_visitor<Args>::operator=(const boost::accumulators::detail::add_ref_visitor<Args>&) [with Args = boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > >]' 52 | add_ref_visitor &operator =(add_ref_visitor const &); | ^~~~~~~~ In file included from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/include/for_each.hpp:11, from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:38, from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/accumulators.hpp:12, from prog.cc:1: /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/for_each.hpp:33:31: note: initializing argument 2 of 'constexpr typename boost::enable_if<boost::fusion::traits::is_sequence<Sequence> >::type boost::fusion::for_each(Sequence&, F) [with Sequence = boost::fusion::filter_view<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > >, boost::accumulators::detail::contains_feature_of_<boost::mpl::v_item<boost::accumulators::tag::sum, boost::mpl::v_item<boost::accumulators::tag::count, boost::mpl::vector0<mpl_::na>, 0>, 0> > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; typename boost::enable_if<boost::fusion::traits::is_sequence<Sequence> >::type = void]' 33 | for_each(Sequence& seq, F f) | ~~^ In file included from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/accumulators.hpp:12, from prog.cc:1: /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp: In instantiation of 'void boost::accumulators::accumulator_set<Sample, Features, Weight>::visit_if(const UnaryFunction&) [with FilterPred = boost::accumulators::detail::contains_feature_of_<boost::mpl::v_item<boost::accumulators::tag::count, boost::mpl::vector0<mpl_::na>, 0> >; UnaryFunction = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; Sample = double; Features = boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> >; Weight = void]': /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulators/droppable_accumulator.hpp:46:74: required from 'void boost::accumulators::detail::add_ref_visitor<Args>::operator()(Accumulator&) const [with Accumulator = boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >; Args = boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > >]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/detail/for_each.hpp:35:10: required from 'constexpr void boost::fusion::detail::for_each_linear(const First&, const Last&, F&, mpl_::false_) [with First = boost::fusion::filter_iterator<boost::fusion::forward_traversal_tag, boost::fusion::cons_iterator<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> >, boost::fusion::cons_iterator<boost::fusion::nil_>, boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > >; Last = boost::fusion::filter_iterator<boost::fusion::forward_traversal_tag, boost::fusion::cons_iterator<boost::fusion::nil_>, boost::fusion::cons_iterator<boost::fusion::nil_>, boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; mpl_::false_ = mpl_::bool_<false>]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/detail/for_each.hpp:36:32: required from 'constexpr void boost::fusion::detail::for_each_linear(const First&, const Last&, F&, mpl_::false_) [with First = boost::fusion::filter_iterator<boost::fusion::forward_traversal_tag, boost::fusion::cons_iterator<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > > >, boost::fusion::cons_iterator<boost::fusion::nil_>, boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > >; Last = boost::fusion::filter_iterator<boost::fusion::forward_traversal_tag, boost::fusion::cons_iterator<boost::fusion::nil_>, boost::fusion::cons_iterator<boost::fusion::nil_>, boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; mpl_::false_ = mpl_::bool_<false>]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/detail/for_each.hpp:46:32: required from 'constexpr void boost::fusion::detail::for_each_dispatch(Sequence&, F&, Tag) [with Sequence = boost::fusion::filter_view<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > >, boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; Tag = boost::fusion::forward_traversal_tag]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/detail/for_each.hpp:143:34: required from 'constexpr void boost::fusion::detail::for_each(Sequence&, F&, mpl_::false_) [with Sequence = boost::fusion::filter_view<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > >, boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; mpl_::false_ = mpl_::bool_<false>]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/for_each.hpp:35:25: required from 'constexpr typename boost::enable_if<boost::fusion::traits::is_sequence<Sequence> >::type boost::fusion::for_each(Sequence&, F) [with Sequence = boost::fusion::filter_view<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > >, boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; typename boost::enable_if<boost::fusion::traits::is_sequence<Sequence> >::type = void]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:314:25: required from 'void boost::accumulators::accumulator_set<Sample, Features, Weight>::visit_if(const UnaryFunction&) [with FilterPred = boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > >; UnaryFunction = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; Sample = double; Features = boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> >; Weight = void]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:175:73: required from 'boost::accumulators::accumulator_set<Sample, Features, Weight>::accumulator_set() [with Sample = double; Features = boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> >; Weight = void]' prog.cc:9:65: required from here /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:314:25: warning: implicitly-declared 'constexpr boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >::add_ref_visitor(const boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >&)' is deprecated [-Wdeprecated-copy] 314 | fusion::for_each(filtered_accs, func); | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ In file included from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:35, from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/accumulators.hpp:12, from prog.cc:1: /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulators/droppable_accumulator.hpp:52:30: note: because 'boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >' has user-provided 'boost::accumulators::detail::add_ref_visitor<Args>& boost::accumulators::detail::add_ref_visitor<Args>::operator=(const boost::accumulators::detail::add_ref_visitor<Args>&) [with Args = boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > >]' 52 | add_ref_visitor &operator =(add_ref_visitor const &); | ^~~~~~~~ In file included from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/include/for_each.hpp:11, from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:38, from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/accumulators.hpp:12, from prog.cc:1: /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/for_each.hpp:33:31: note: initializing argument 2 of 'constexpr typename boost::enable_if<boost::fusion::traits::is_sequence<Sequence> >::type boost::fusion::for_each(Sequence&, F) [with Sequence = boost::fusion::filter_view<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > >, boost::accumulators::detail::contains_feature_of_<boost::mpl::v_item<boost::accumulators::tag::count, boost::mpl::vector0<mpl_::na>, 0> > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; typename boost::enable_if<boost::fusion::traits::is_sequence<Sequence> >::type = void]' 33 | for_each(Sequence& seq, F f) | ~~^ In file included from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/accumulators.hpp:12, from prog.cc:1: /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp: In instantiation of 'void boost::accumulators::accumulator_set<Sample, Features, Weight>::visit_if(const UnaryFunction&) [with FilterPred = boost::accumulators::detail::contains_feature_of_<boost::mpl::vector0<mpl_::na> >; UnaryFunction = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; Sample = double; Features = boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> >; Weight = void]': /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulators/droppable_accumulator.hpp:46:74: required from 'void boost::accumulators::detail::add_ref_visitor<Args>::operator()(Accumulator&) const [with Accumulator = boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>; Args = boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > >]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/detail/for_each.hpp:35:10: required from 'constexpr void boost::fusion::detail::for_each_linear(const First&, const Last&, F&, mpl_::false_) [with First = boost::fusion::filter_iterator<boost::fusion::forward_traversal_tag, boost::fusion::cons_iterator<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > > >, boost::fusion::cons_iterator<boost::fusion::nil_>, boost::accumulators::detail::contains_feature_of_<boost::mpl::v_item<boost::accumulators::tag::sum, boost::mpl::v_item<boost::accumulators::tag::count, boost::mpl::vector0<mpl_::na>, 0>, 0> > >; Last = boost::fusion::filter_iterator<boost::fusion::forward_traversal_tag, boost::fusion::cons_iterator<boost::fusion::nil_>, boost::fusion::cons_iterator<boost::fusion::nil_>, boost::accumulators::detail::contains_feature_of_<boost::mpl::v_item<boost::accumulators::tag::sum, boost::mpl::v_item<boost::accumulators::tag::count, boost::mpl::vector0<mpl_::na>, 0>, 0> > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; mpl_::false_ = mpl_::bool_<false>]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/detail/for_each.hpp:46:32: required from 'constexpr void boost::fusion::detail::for_each_dispatch(Sequence&, F&, Tag) [with Sequence = boost::fusion::filter_view<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > >, boost::accumulators::detail::contains_feature_of_<boost::mpl::v_item<boost::accumulators::tag::sum, boost::mpl::v_item<boost::accumulators::tag::count, boost::mpl::vector0<mpl_::na>, 0>, 0> > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; Tag = boost::fusion::forward_traversal_tag]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/detail/for_each.hpp:143:34: required from 'constexpr void boost::fusion::detail::for_each(Sequence&, F&, mpl_::false_) [with Sequence = boost::fusion::filter_view<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > >, boost::accumulators::detail::contains_feature_of_<boost::mpl::v_item<boost::accumulators::tag::sum, boost::mpl::v_item<boost::accumulators::tag::count, boost::mpl::vector0<mpl_::na>, 0>, 0> > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; mpl_::false_ = mpl_::bool_<false>]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/for_each.hpp:35:25: required from 'constexpr typename boost::enable_if<boost::fusion::traits::is_sequence<Sequence> >::type boost::fusion::for_each(Sequence&, F) [with Sequence = boost::fusion::filter_view<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > >, boost::accumulators::detail::contains_feature_of_<boost::mpl::v_item<boost::accumulators::tag::sum, boost::mpl::v_item<boost::accumulators::tag::count, boost::mpl::vector0<mpl_::na>, 0>, 0> > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; typename boost::enable_if<boost::fusion::traits::is_sequence<Sequence> >::type = void]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:314:25: [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/detail/for_each.hpp:46:32: required from 'constexpr void boost::fusion::detail::for_each_dispatch(Sequence&, F&, Tag) [with Sequence = boost::fusion::filter_view<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > >, boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; Tag = boost::fusion::forward_traversal_tag]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/detail/for_each.hpp:143:34: required from 'constexpr void boost::fusion::detail::for_each(Sequence&, F&, mpl_::false_) [with Sequence = boost::fusion::filter_view<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > >, boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; mpl_::false_ = mpl_::bool_<false>]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/for_each.hpp:35:25: required from 'constexpr typename boost::enable_if<boost::fusion::traits::is_sequence<Sequence> >::type boost::fusion::for_each(Sequence&, F) [with Sequence = boost::fusion::filter_view<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > >, boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; typename boost::enable_if<boost::fusion::traits::is_sequence<Sequence> >::type = void]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:314:25: required from 'void boost::accumulators::accumulator_set<Sample, Features, Weight>::visit_if(const UnaryFunction&) [with FilterPred = boost::accumulators::detail::contains_feature_of_<boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > >; UnaryFunction = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; Sample = double; Features = boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> >; Weight = void]' /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:175:73: required from 'boost::accumulators::accumulator_set<Sample, Features, Weight>::accumulator_set() [with Sample = double; Features = boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> >; Weight = void]' prog.cc:9:65: required from here /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:314:25: warning: implicitly-declared 'constexpr boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >::add_ref_visitor(const boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >&)' is deprecated [-Wdeprecated-copy] 314 | fusion::for_each(filtered_accs, func); | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ In file included from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:35, from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/accumulators.hpp:12, from prog.cc:1: /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulators/droppable_accumulator.hpp:52:30: note: because 'boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >' has user-provided 'boost::accumulators::detail::add_ref_visitor<Args>& boost::accumulators::detail::add_ref_visitor<Args>::operator=(const boost::accumulators::detail::add_ref_visitor<Args>&) [with Args = boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > >]' 52 | add_ref_visitor &operator =(add_ref_visitor const &); | ^~~~~~~~ In file included from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/include/for_each.hpp:11, from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/framework/accumulator_set.hpp:38, from /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/accumulators/accumulators.hpp:12, from prog.cc:1: /opt/wandbox/boost-1.79.0-gcc-11.1.0/include/boost/fusion/algorithm/iteration/for_each.hpp:33:31: note: initializing argument 2 of 'constexpr typename boost::enable_if<boost::fusion::traits::is_sequence<Sequence> >::type boost::fusion::for_each(Sequence&, F) [with Sequence = boost::fusion::filter_view<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::count_impl, boost::accumulators::tag::count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::sum_impl<double, boost::accumulators::tag::sample>, boost::accumulators::tag::sum>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::mean_impl<double, boost::accumulators::tag::sum>, boost::accumulators::tag::mean>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::moment_impl<mpl_::int_<2>, double>, boost::accumulators::tag::moment<2> >, boost::fusion::nil_> > > >, boost::accumulators::detail::contains_feature_of_<boost::mpl::vector0<mpl_::na> > >; F = boost::accumulators::detail::add_ref_visitor<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<double, boost::accumulators::stats<boost::accumulators::tag::mean, boost::accumulators::tag::moment<2> > > > > >; typename boost::enable_if<boost::fusion::traits::is_sequence<Sequence> >::type = void]' 33 | for_each(Sequence& seq, F f) | ~~^
Link to test it: https://wandbox.org/permlink/mpeDCpAenEJcQKnW
Any idea who to fix this?
Thanks
I got no warning when compiling on ArchLinux with gcc 13.2.1 and boost 1.83.0. g++ -std=gnu++20 -Wall -Wextra tmp.cpp
g++ -std=gnu++20 -Wall -Wextra tmp.cpp
Hi,
I noticed that at least from Boost 1.79 with GCC 11.2 I get a lot of deprecated-copy warnings when using boost::accumlators library:
Output:
Link to test it: https://wandbox.org/permlink/mpeDCpAenEJcQKnW
Any idea who to fix this?
Thanks