boostorg / boost

Super-project for modularized Boost
https://github.com/boostorg/wiki/wiki/Getting-Started%3A-Overview
Boost Software License 1.0
7.13k stars 1.75k forks source link

Boost::accumulators [deprecated-copy] warnings GCC11.2 #754

Open alezz94 opened 1 year ago

alezz94 commented 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

FantasqueX commented 11 months ago

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