Add missing std::move in Buffer move constructor and add unit test for moving a histogram buffer
Addresses following build failure.
/usera/jonesc/LHCb/stack/Master/Gaudi/GaudiKernel/include/Gaudi/Accumulators.h: In instantiation of 'Gaudi::Accumulators::Buffer<ContainedAccumulator, Atomicity, Args>::Buffer(Gaudi::Accumulators::Buffer<ContainedAccumulator, Atomicity, Args>&&) [with ContainedAccumulator = Gaudi::Accumulators::HistogramingAccumulator; Gaudi::Accumulators::atomicity Atomicity = Gaudi::Accumulators::atomicity::full; Args = {float, std::integral_constant<unsigned int, 1>, std::tuple<Gaudi::Accumulators::Axis<float> >}]':
/usera/jonesc/LHCb/stack/Master/Gaudi/GaudiKernel/tests/src/CounterHistosUnitTest.cpp:447:46: required from here
/usera/jonesc/LHCb/stack/Master/Gaudi/GaudiKernel/include/Gaudi/Accumulators.h:858:75: error: use of deleted function 'Gaudi::Accumulators::HistogramingAccumulatorInternal<Gaudi::Accumulators::atomicity::none, Gaudi::Accumulators::HistoInputType<std::tuple<float>, 1>, long unsigned int, Gaudi::Accumulators::IntegralAccumulator, std::tuple<Gaudi::Accumulators::Axis<float> > >::HistogramingAccumulatorInternal(const Gaudi::Accumulators::HistogramingAccumulatorInternal<Gaudi::Accumulators::atomicity::none, Gaudi::Accumulators::HistoInputType<std::tuple<float>, 1>, long unsigned int, Gaudi::Accumulators::IntegralAccumulator, std::tuple<Gaudi::Accumulators::Axis<float> > >&)'
858 | Buffer( Buffer&& other ) : base_type( other ), m_prime( other.m_prime ) { other.reset(); }
| ^
/usera/jonesc/LHCb/stack/Master/Gaudi/GaudiKernel/include/Gaudi/Accumulators/StaticHistogram.h:455:9: note: 'Gaudi::Accumulators::HistogramingAccumulatorInternal<Gaudi::Accumulators::atomicity::none, Gaudi::Accumulators::HistoInputType<std::tuple<float>, 1>, long unsigned int, Gaudi::Accumulators::IntegralAccumulator, std::tuple<Gaudi::Accumulators::Axis<float> > >::HistogramingAccumulatorInternal(const Gaudi::Accumulators::HistogramingAccumulatorInternal<Gaudi::Accumulators::atomicity::none, Gaudi::Accumulators::HistoInputType<std::tuple<float>, 1>, long unsigned int, Gaudi::Accumulators::IntegralAccumulator, std::tuple<Gaudi::Accumulators::Axis<float> > >&)' is implicitly deleted because the default definition would be ill-formed:
455 | class HistogramingAccumulatorInternal {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usera/jonesc/LHCb/stack/Master/Gaudi/GaudiKernel/include/Gaudi/Accumulators/StaticHistogram.h:455:9: error: use of deleted function 'std::unique_ptr<_Tp [], _Dp>::unique_ptr(const std::unique_ptr<_Tp [], _Dp>&) [with _Tp = Gaudi::Accumulators::IntegralAccumulator<Gaudi::Accumulators::atomicity::none, long unsigned int>; _Dp = std::default_delete<Gaudi::Accumulators::IntegralAccumulator<Gaudi::Accumulators::atomicity::none, long unsigned int> []>]'
In file included from /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/include/c++/13.1.0/memory:78,
from /cvmfs/lhcb.cern.ch/lib/lcg/releases/jsonmcpp/3.10.5-f26c3/x86_64-el9-gcc13-opt/include/nlohmann/json.hpp:54,
from ../GaudiKernel/include/Gaudi/MonitoringHub.h:18,
from ../GaudiKernel/include/Gaudi/Accumulators.h:14:
/cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/include/c++/13.1.0/bits/unique_ptr.h:796:7: note: declared here
796 | unique_ptr(const unique_ptr&) = delete;
| ^~~~~~~~~~
ninja: build stopped: subcommand failed.
Edited by Christopher Rob Jones