[MSVC][std:c++latest] Fix compiler error (#8093)

Co-authored-by: QuellaZhang <zhangyi2090@163.com>
This commit is contained in:
QuellaZhang 2022-07-20 07:15:39 +00:00 committed by GitHub
parent ef11b024e8
commit 703261e78f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -242,13 +242,13 @@ class ColumnMatrix {
num_nonzeros_.resize(n_features, 0); num_nonzeros_.resize(n_features, 0);
auto get_bin_idx = [&](auto bin_id, auto rid, bst_feature_t fid) { auto get_bin_idx = [&](auto bin_id, auto rid, bst_feature_t fid) {
if (type_[fid] == kDenseColumn) { if (type_[fid] == kDenseColumn) {
ColumnBinT* begin = &local_index[feature_offsets_[fid]]; ColumnBinT* begin = reinterpret_cast<ColumnBinT*>(&local_index[feature_offsets_[fid]]);
begin[rid] = bin_id - index_base_[fid]; begin[rid] = bin_id - index_base_[fid];
// not thread-safe with bool vector. FIXME(jiamingy): We can directly assign // not thread-safe with bool vector. FIXME(jiamingy): We can directly assign
// kMissingId to the index to avoid missing flags. // kMissingId to the index to avoid missing flags.
missing_flags_[feature_offsets_[fid] + rid] = false; missing_flags_[feature_offsets_[fid] + rid] = false;
} else { } else {
ColumnBinT* begin = &local_index[feature_offsets_[fid]]; ColumnBinT* begin = reinterpret_cast<ColumnBinT*>(&local_index[feature_offsets_[fid]]);
begin[num_nonzeros_[fid]] = bin_id - index_base_[fid]; begin[num_nonzeros_[fid]] = bin_id - index_base_[fid];
row_ind_[feature_offsets_[fid] + num_nonzeros_[fid]] = rid; row_ind_[feature_offsets_[fid] + num_nonzeros_[fid]] = rid;
++num_nonzeros_[fid]; ++num_nonzeros_[fid];