mirror of
https://github.com/boostorg/core.git
synced 2025-11-29 05:40:14 +01:00
@@ -23,9 +23,17 @@ class span;
|
|||||||
|
|
||||||
namespace detail {
|
namespace detail {
|
||||||
|
|
||||||
|
template<class U, class T, class = void>
|
||||||
|
struct span_convertible
|
||||||
|
{
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
template<class U, class T>
|
template<class U, class T>
|
||||||
struct span_convertible {
|
struct span_convertible<U, T, typename std::enable_if<
|
||||||
static constexpr bool value = std::is_convertible<U(*)[], T(*)[]>::value;
|
std::is_convertible<U(*)[], T(*)[]>::value>::type>
|
||||||
|
{
|
||||||
|
static constexpr bool value = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<std::size_t E, std::size_t N>
|
template<std::size_t E, std::size_t N>
|
||||||
|
|||||||
@@ -25,6 +25,20 @@ struct range {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct buffer {
|
||||||
|
void* data() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
const void* data() const {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::size_t size() const {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
struct base { };
|
struct base { };
|
||||||
|
|
||||||
struct derived
|
struct derived
|
||||||
@@ -138,6 +152,10 @@ void test_range()
|
|||||||
const range<int>&>));
|
const range<int>&>));
|
||||||
BOOST_TEST_TRAIT_FALSE((std::is_constructible<boost::span<base>,
|
BOOST_TEST_TRAIT_FALSE((std::is_constructible<boost::span<base>,
|
||||||
range<derived>&>));
|
range<derived>&>));
|
||||||
|
BOOST_TEST_TRAIT_FALSE((std::is_constructible<boost::span<int>,
|
||||||
|
buffer>));
|
||||||
|
BOOST_TEST_TRAIT_FALSE((std::is_constructible<boost::span<int>,
|
||||||
|
const buffer&>));
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_initializer_list()
|
void test_initializer_list()
|
||||||
|
|||||||
Reference in New Issue
Block a user