parent
ebc86a3afa
commit
77cfbff5a7
@ -422,24 +422,27 @@ class Span {
|
|||||||
|
|
||||||
template <class Container,
|
template <class Container,
|
||||||
class = typename std::enable_if<
|
class = typename std::enable_if<
|
||||||
!std::is_const<element_type>::value && !detail::IsSpan<Container>::value &&
|
!std::is_const<element_type>::value &&
|
||||||
|
!detail::IsSpan<Container>::value &&
|
||||||
|
std::is_convertible<typename Container::pointer, pointer>::value &&
|
||||||
std::is_convertible<typename Container::pointer,
|
std::is_convertible<typename Container::pointer,
|
||||||
pointer>::value &&
|
decltype(std::declval<Container>().data())>::value>::type>
|
||||||
std::is_convertible<
|
Span(Container& _cont) : // NOLINT
|
||||||
typename Container::pointer,
|
size_(_cont.size()), data_(_cont.data()) {
|
||||||
decltype(std::declval<Container>().data())>::value>>
|
static_assert(!detail::IsSpan<Container>::value, "Wrong constructor of Span is called.");
|
||||||
XGBOOST_DEVICE Span(Container& _cont) : // NOLINT
|
}
|
||||||
size_(_cont.size()), data_(_cont.data()) {}
|
|
||||||
|
|
||||||
template <class Container,
|
template <class Container,
|
||||||
class = typename std::enable_if<
|
class = typename std::enable_if<
|
||||||
std::is_const<element_type>::value && !detail::IsSpan<Container>::value &&
|
std::is_const<element_type>::value &&
|
||||||
|
!detail::IsSpan<Container>::value &&
|
||||||
std::is_convertible<typename Container::pointer, pointer>::value &&
|
std::is_convertible<typename Container::pointer, pointer>::value &&
|
||||||
std::is_convertible<
|
std::is_convertible<typename Container::pointer,
|
||||||
typename Container::pointer,
|
decltype(std::declval<Container>().data())>::value>::type>
|
||||||
decltype(std::declval<Container>().data())>::value>>
|
Span(const Container& _cont) : size_(_cont.size()), // NOLINT
|
||||||
XGBOOST_DEVICE Span(const Container& _cont) : size_(_cont.size()), // NOLINT
|
data_(_cont.data()) {
|
||||||
data_(_cont.data()) {}
|
static_assert(!detail::IsSpan<Container>::value, "Wrong constructor of Span is called.");
|
||||||
|
}
|
||||||
|
|
||||||
template <class U, std::size_t OtherExtent,
|
template <class U, std::size_t OtherExtent,
|
||||||
class = typename std::enable_if<
|
class = typename std::enable_if<
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user