#include "asl/option.hpp" #include "asl/test_types.hpp" static_assert(asl::trivially_destructible>); static_assert(!asl::trivially_destructible>); static_assert(asl::copy_constructible>); static_assert(asl::copy_constructible>); static_assert(!asl::copy_constructible>); static_assert(!asl::copy_constructible>); static_assert(asl::move_constructible>); static_assert(asl::move_constructible>); static_assert(asl::move_constructible>); static_assert(!asl::move_constructible>); static_assert(asl::copy_assignable>); static_assert(asl::copy_assignable>); static_assert(!asl::copy_assignable>); static_assert(!asl::copy_assignable>); static_assert(asl::move_assignable>); static_assert(asl::move_assignable>); static_assert(!asl::move_assignable>); int main() { asl::option a; asl::option b; a = ASL_MOVE(b); return 0; }