summaryrefslogtreecommitdiff
path: root/asl/meta/refs_tests.cpp
blob: 49d4f23ab9bfb31d9b062dec24c02e78d3b47b3e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "asl/meta/refs.hpp"
#include "asl/meta/types.hpp"

using namespace asl;

static_assert(referenceable<int>);
static_assert(referenceable<int&>);
static_assert(referenceable<int&&>);
static_assert(!referenceable<void>);
static_assert(referenceable<void*>);
static_assert(referenceable<void()>);
static_assert(referenceable<void(*)()>);
static_assert(!referenceable<void() const>);
static_assert(!referenceable<void() &>);
static_assert(!referenceable<void() const &&>);

static_assert(!is_ref<int>);
static_assert(!is_rref<int>);
static_assert(!is_any_ref<int>);

static_assert(is_ref<int&>);
static_assert(!is_rref<int&>);
static_assert(is_any_ref<int&>);

static_assert(!is_ref<int&&>);
static_assert(is_rref<int&&>);
static_assert(is_any_ref<int&&>);

static_assert(!is_any_ref<void()>);
static_assert(!is_any_ref<void() const>);
static_assert(!is_any_ref<void() &>);

int main() { return 0; }