Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0e92781

Browse files
committed
Make as-lvalue.pass.cpp C++11 friendly
1 parent 3861ffa commit 0e92781

1 file changed

Lines changed: 7 additions & 15 deletions

File tree

libcxx/test/libcxx/ranges/range.adaptors/range.adaptor.helpers/as-lvalue.pass.cpp

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,28 +11,20 @@
1111
// template<class T>
1212
// constexpr T& as-lvalue(T&& t) { // exposition only
1313

14-
#include <concepts>
14+
#include <cassert>
15+
#include <type_traits>
1516
#include <utility>
1617

17-
constexpr bool test() {
18-
// Check glvalue
19-
{
20-
int lvalue{};
21-
[[maybe_unused]] std::same_as<int&> decltype(auto) check = std::__as_lvalue(lvalue);
22-
}
18+
constexpr bool test(int value = 0) {
19+
static_assert(std::is_same<decltype(std::__as_lvalue(value)), int&>::value, "");
20+
static_assert(std::is_same<decltype(std::__as_lvalue(std::move(value))), int&>::value, "");
2321

24-
// Check xvalue
25-
{
26-
int xvalue{};
27-
[[maybe_unused]] std::same_as<int&> decltype(auto) check = std::__as_lvalue(std::move(xvalue));
28-
}
29-
30-
return true;
22+
return (assert(&std::__as_lvalue(value) == &value), assert(&std::__as_lvalue(std::move(value)) == &value), true);
3123
}
3224

3325
int main(int, char**) {
3426
test();
35-
static_assert(test());
27+
static_assert(test(), "");
3628

3729
return 0;
3830
}

0 commit comments

Comments
 (0)