@@ -257,14 +257,14 @@ struct DataToFeatVec {
257257
258258template <typename EncAccessor>
259259class SparsePageView : public DataToFeatVec <SparsePageView<EncAccessor>> {
260- EncAccessor const & acc_;
260+ EncAccessor acc_;
261261 HostSparsePageView const view_;
262262
263263 public:
264264 bst_idx_t const base_rowid;
265265
266- SparsePageView (HostSparsePageView const p, bst_idx_t base_rowid, EncAccessor const & acc)
267- : acc_{acc}, view_{p}, base_rowid{base_rowid} {}
266+ SparsePageView (HostSparsePageView const p, bst_idx_t base_rowid, EncAccessor acc)
267+ : acc_{std::move ( acc) }, view_{p}, base_rowid{base_rowid} {}
268268 [[nodiscard]] std::size_t Size () const { return view_.Size (); }
269269
270270 [[nodiscard]] bst_idx_t DoFill (bst_idx_t ridx, float *out) const {
@@ -283,7 +283,7 @@ template <typename EncAccessor>
283283class GHistIndexMatrixView : public DataToFeatVec <GHistIndexMatrixView<EncAccessor>> {
284284 private:
285285 GHistIndexMatrix const &page_;
286- EncAccessor const & acc_;
286+ EncAccessor acc_;
287287 common::Span<FeatureType const > ft_;
288288
289289 std::vector<std::uint32_t > const &ptrs_;
@@ -295,10 +295,10 @@ class GHistIndexMatrixView : public DataToFeatVec<GHistIndexMatrixView<EncAccess
295295 bst_idx_t const base_rowid;
296296
297297 public:
298- GHistIndexMatrixView (GHistIndexMatrix const &_page, EncAccessor const & acc,
298+ GHistIndexMatrixView (GHistIndexMatrix const &_page, EncAccessor acc,
299299 common::Span<FeatureType const > ft)
300300 : page_{_page},
301- acc_{acc},
301+ acc_{std::move ( acc) },
302302 ft_{ft},
303303 ptrs_{_page.cut .Ptrs ()},
304304 mins_{_page.cut .MinValues ()},
@@ -365,11 +365,11 @@ template <typename Adapter, typename EncAccessor>
365365class AdapterView : public DataToFeatVec <AdapterView<Adapter, EncAccessor>> {
366366 Adapter const *adapter_;
367367 float missing_;
368- EncAccessor const & acc_;
368+ EncAccessor acc_;
369369
370370 public:
371- explicit AdapterView (Adapter const *adapter, float missing, EncAccessor const & acc)
372- : adapter_{adapter}, missing_{missing}, acc_{acc} {}
371+ explicit AdapterView (Adapter const *adapter, float missing, EncAccessor acc)
372+ : adapter_{adapter}, missing_{missing}, acc_{std::move ( acc) } {}
373373
374374 [[nodiscard]] bst_idx_t DoFill (bst_idx_t ridx, float *out) const {
375375 auto const &batch = adapter_->Value ();
@@ -408,7 +408,7 @@ struct EncAccessorPolicy {
408408 [[nodiscard]] auto MakeAccessor (Context const *ctx, enc::HostColumnsView new_enc,
409409 gbm::GBTreeModel const &model) {
410410 auto [acc, mapping] = MakeCatAccessor (ctx, new_enc, model.Cats ());
411- this -> mapping_ = std::move (mapping);
411+ std::swap (mapping, this -> mapping_ );
412412 return acc;
413413 }
414414};
@@ -923,7 +923,7 @@ class CPUPredictor : public Predictor {
923923 CHECK_NE (ncolumns, 0 );
924924 auto device = ctx_->Device ().IsSycl () ? DeviceOrd::CPU () : ctx_->Device ();
925925 auto base_margin = info.base_margin_ .View (device);
926- auto base_score = model.learner_model_param ->BaseScore (device)( 0 ) ;
926+ auto base_score = model.learner_model_param ->BaseScore (device);
927927
928928 // parallel over local batch
929929 common::ParallelFor (batch.Size (), this ->ctx_ ->Threads (), [&](auto i) {
@@ -962,7 +962,7 @@ class CPUPredictor : public Predictor {
962962 CHECK_EQ (base_margin.Shape (1 ), ngroup);
963963 p_contribs[ncolumns - 1 ] += base_margin (row_idx, gid);
964964 } else {
965- p_contribs[ncolumns - 1 ] += base_score;
965+ p_contribs[ncolumns - 1 ] += base_score (gid) ;
966966 }
967967 }
968968 });
0 commit comments