8 #ifndef XGBOOST_PARAMETER_H_ 
 9 #define XGBOOST_PARAMETER_H_ 
 11 #include <dmlc/parameter.h> 
 14 #include <type_traits> 
 50 #define DECLARE_FIELD_ENUM_CLASS(EnumClass) \ 
 52 namespace parameter { \ 
 54 class FieldEntry<EnumClass> : public FieldEntry<int> { \ 
 58  std::is_same_v<int, typename std::underlying_type_t<EnumClass>>, \ 
 59  "enum class must be backed by int"); \
 
 62  using Super = FieldEntry<int>; \
 
 63  void Set(void *head, const std::string &value) const override { \
 
 64  Super::Set(head, value); \
 
 66  inline FieldEntry<EnumClass>& add_enum(const std::string &key, EnumClass value) { \
 
 67  Super::add_enum(key, static_cast<int>(value)); \
 
 70  inline FieldEntry<EnumClass>& set_default(const EnumClass& default_value) { \
 
 71  default_value_ = static_cast<int>(default_value); \
 
 72  has_default_ = true; \
 
 75  inline void Init(const std::string &key, void *head, EnumClass& ref) { 
 \ 
 76  Super::Init(key, head, *reinterpret_cast<int*>(&ref)); \ 
 83 template <
typename Type>
 
 89  template <
typename Container>
 
 92  return dmlc::Parameter<Type>::UpdateAllowUnknown(kwargs);
 
 94  auto unknown = dmlc::Parameter<Type>::InitAllowUnknown(kwargs);
 
集成目标、gbm和评估的学习器接口。这是用户面临的XGB...
Definition: base.h:97
std::vector< std::pair< std::string, std::string > > Args
定义: base.h:324
bool initialised_
定义: parameter.h:86
bool GetInitialised() const
定义: parameter.h:99
Args UpdateAllowUnknown(Container const &kwargs)
定义: parameter.h:90