Skip to content

Commit afbda54

Browse files
Test explicitness of as_const_view's functions
1 parent 5f9d8ff commit afbda54

File tree

1 file changed

+4
-1
lines changed
  • libcxx/test/std/ranges/range.adaptors/range.as.const

1 file changed

+4
-1
lines changed

libcxx/test/std/ranges/range.adaptors/range.as.const/ctor.pass.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,14 @@ static_assert(std::is_constructible_v<std::ranges::as_const_view<NonDefaultConst
3737
static_assert(std::is_nothrow_constructible_v<std::ranges::as_const_view<DefaultConstructibleView>>);
3838

3939
template <class T, class... Args>
40-
concept IsImplicitlyConstructible = requires(T val, Args... args) { val = {std::forward<Args>(args)...}; };
40+
concept IsImplicitlyConstructible = requires(void (&fun)(T), Args&&... args) { fun({std::forward<Args>(args)...}); };
4141

4242
static_assert(IsImplicitlyConstructible<std::ranges::as_const_view<DefaultConstructibleView>>);
4343
static_assert(!IsImplicitlyConstructible<std::ranges::as_const_view<NonDefaultConstructibleView>, int>);
4444

45+
static_assert(std::is_constructible_v<std::ranges::as_const_view<DefaultConstructibleView>>, DefaultConstructibleView);
46+
static_assert(!std::is_convertible_v<DefaultConstructibleView, std::ranges::as_const_view<DefaultConstructibleView>>);
47+
4548
constexpr bool test() {
4649
std::ranges::as_const_view<DefaultConstructibleView> view = {};
4750
assert(view.base().i_ == 23);

0 commit comments

Comments
 (0)