27static_assert(std::is_trivially_constructible_v<NonCopyable> && !std::is_copy_assignable_v<NonCopyable> &&
28 !std::is_copy_constructible_v<NonCopyable> && std::is_trivially_move_assignable_v<NonCopyable> &&
29 std::is_trivially_move_constructible_v<NonCopyable>,
30 "Class non_copyable should be trivially constructible and movable, not copyable");
51static_assert(std::is_trivially_constructible_v<NonMovable> && std::is_trivially_copyable_v<NonMovable> &&
52 !std::is_copy_assignable_v<NonMovable> && !std::is_copy_constructible_v<NonMovable> &&
53 !std::is_move_assignable_v<NonMovable> && !std::is_move_constructible_v<NonMovable>,
54 "Class non_movable should be trivially constructible, but neither copyable nor movable");
59 []<
class Rep, class Period>(std::type_identity<std::chrono::duration<Rep, Period>>) {}(std::type_identity<T>());
A trivially-movable, but non-copyable type.
Definition class_traits.hpp:14
NonCopyable(const NonCopyable &)=delete
NonCopyable & operator=(const NonCopyable &)=delete
NonCopyable & operator=(NonCopyable &&)=default
NonCopyable(NonCopyable &&)=default
A non-movable and non-copyable type.
Definition class_traits.hpp:38
NonMovable(const NonMovable &)=delete
NonMovable & operator=(const NonMovable &)=delete
NonMovable & operator=(NonMovable &&)=delete
NonMovable(NonMovable &&)=delete
Definition class_traits.hpp:58
Definition asm_buffer.hpp:19