summaryrefslogtreecommitdiff
path: root/asl/base/functional_tests.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'asl/base/functional_tests.cpp')
-rw-r--r--asl/base/functional_tests.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/asl/base/functional_tests.cpp b/asl/base/functional_tests.cpp
index 6332784..6645109 100644
--- a/asl/base/functional_tests.cpp
+++ b/asl/base/functional_tests.cpp
@@ -68,6 +68,9 @@ static_assert(asl::invocable<decltype(&HasMember::member), const HasMember2>);
static_assert(asl::invocable<decltype(&HasMember::member), const HasMember&>);
static_assert(asl::invocable<decltype(&HasMember::member), const HasMember2*>);
+static_assert(asl::invocable_r<void*, int*()>);
+static_assert(!asl::invocable_r<int*, void*()>);
+
ASL_TEST(invoke_member_function)
{
HasFunction c;
@@ -109,3 +112,9 @@ ASL_TEST(invoke_lambda)
ASL_TEST_EXPECT(asl::invoke([](){ return 35; }) == 35);
ASL_TEST_EXPECT(asl::invoke([](int x){ return x + 2; }, 6) == 8);
}
+
+ASL_TEST(invoke_r)
+{
+ ASL_TEST_EXPECT(asl::invoke_r<int>([]() { return 1ULL; }) == 1);
+ asl::invoke_r<void>([]() { return 1ULL; });
+}