Define default ctors for gpair. (#8660)

* Define default ctors for gpair.

Fix clang warning:

Definition of implicit copy assignment operator for 'GradientPairInternal<float>' is
deprecated because it has a user-declared copy constructor
This commit is contained in:
Jiaming Yuan 2023-01-16 22:52:13 +08:00 committed by GitHub
parent a9c6199723
commit 0ae8df9a65
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 9 deletions

View File

@ -1,18 +1,19 @@
/*! /**
* Copyright (c) 2015 by Contributors * Copyright 2015-2023 by XGBoost Contributors
* \file base.h * \file base.h
* \brief defines configuration macros of xgboost. * \brief Defines configuration macros and basic types for xgboost.
*/ */
#ifndef XGBOOST_BASE_H_ #ifndef XGBOOST_BASE_H_
#define XGBOOST_BASE_H_ #define XGBOOST_BASE_H_
#include <dmlc/base.h> #include <dmlc/base.h>
#include <dmlc/omp.h> #include <dmlc/omp.h>
#include <cmath> #include <cmath>
#include <iostream> #include <iostream>
#include <vector>
#include <string> #include <string>
#include <utility> #include <utility>
#include <vector>
/*! /*!
* \brief string flag for R library, to leave hooks when needed. * \brief string flag for R library, to leave hooks when needed.
@ -164,7 +165,10 @@ class GradientPairInternal {
} }
// Copy constructor if of same value type, marked as default to be trivially_copyable // Copy constructor if of same value type, marked as default to be trivially_copyable
GradientPairInternal(const GradientPairInternal<T> &g) = default; GradientPairInternal(GradientPairInternal const &g) = default;
GradientPairInternal(GradientPairInternal &&g) = default;
GradientPairInternal &operator=(GradientPairInternal const &that) = default;
GradientPairInternal &operator=(GradientPairInternal &&that) = default;
// Copy constructor if different value type - use getters and setters to // Copy constructor if different value type - use getters and setters to
// perform conversion // perform conversion

View File

@ -1,5 +1,5 @@
/*! /**
* Copyright 2018-2019 by Contributors * Copyright 2018-2023 by XGBoost Contributors
* \author Rory Mitchell * \author Rory Mitchell
*/ */
@ -202,8 +202,7 @@ class GPUCoordinateUpdater : public LinearUpdater { // NOLINT
auto f = [=] __device__(size_t idx) { auto f = [=] __device__(size_t idx) {
auto entry = d_col[idx]; auto entry = d_col[idx];
auto g = d_gpair[entry.index * num_group + group_idx]; auto g = d_gpair[entry.index * num_group + group_idx];
return GradientPair(g.GetGrad() * entry.fvalue, return GradientPair{g.GetGrad() * entry.fvalue, g.GetHess() * entry.fvalue * entry.fvalue};
g.GetHess() * entry.fvalue * entry.fvalue);
}; // NOLINT }; // NOLINT
thrust::transform_iterator<decltype(f), decltype(counting), GradientPair> thrust::transform_iterator<decltype(f), decltype(counting), GradientPair>
multiply_iterator(counting, f); multiply_iterator(counting, f);