#include "asl/ptr.hpp"

static_assert(asl::ptr_metadata<asl::ptr_internal::metadata<void>>);
static_assert(asl::ptr_metadata<asl::ptr_internal::metadata<int[]>>);
static_assert(asl::ptr_metadata<asl::ptr_internal::metadata<int[56]>>);
static_assert(asl::ptr_metadata<asl::ptr_internal::metadata<int>>);
static_assert(asl::ptr_metadata<asl::ptr_internal::metadata<int()>>);
static_assert(asl::ptr_metadata<asl::ptr_internal::metadata<int(int) const &>>);
static_assert(asl::ptr_metadata<asl::ptr_internal::metadata<const int&>>);
static_assert(asl::ptr_metadata<asl::ptr_internal::metadata<int&&>>);

static_assert(sizeof(asl::ptr<int>) == sizeof(int*));
static_assert(sizeof(asl::ptr<int[]>) == sizeof(int*) * 2);
static_assert(sizeof(asl::ptr<int[67]>) == sizeof(int*));

int main() { return 0; }