/******************************************************************************* * This file is part of the "https://github.com/blackmatov/meta.hpp" * For conditions of distribution and use, see copyright notice in LICENSE.md * Copyright (C) 2021-2023, by Matvey Cherevko (blackmatov@gmail.com) ******************************************************************************/ #include "../meta_untests.hpp" TEST_CASE("meta/meta_utilities/detail") { namespace meta = meta_hpp; SUBCASE("cvref_traits") { static_assert(!meta::detail::cvref_traits::is_lvalue); static_assert(!meta::detail::cvref_traits::is_rvalue); static_assert(!meta::detail::cvref_traits::is_const); static_assert(!meta::detail::cvref_traits::is_volatile); static_assert(!meta::detail::cvref_traits::is_lvalue); static_assert(!meta::detail::cvref_traits::is_rvalue); static_assert(meta::detail::cvref_traits::is_const); static_assert(!meta::detail::cvref_traits::is_volatile); static_assert(!meta::detail::cvref_traits::is_lvalue); static_assert(!meta::detail::cvref_traits::is_rvalue); static_assert(meta::detail::cvref_traits::is_const); static_assert(meta::detail::cvref_traits::is_volatile); static_assert(meta::detail::cvref_traits::is_lvalue); static_assert(!meta::detail::cvref_traits::is_rvalue); static_assert(!meta::detail::cvref_traits::is_const); static_assert(!meta::detail::cvref_traits::is_volatile); static_assert(meta::detail::cvref_traits::is_lvalue); static_assert(!meta::detail::cvref_traits::is_rvalue); static_assert(meta::detail::cvref_traits::is_const); static_assert(!meta::detail::cvref_traits::is_volatile); static_assert(meta::detail::cvref_traits::is_lvalue); static_assert(!meta::detail::cvref_traits::is_rvalue); static_assert(meta::detail::cvref_traits::is_const); static_assert(meta::detail::cvref_traits::is_volatile); static_assert(!meta::detail::cvref_traits::is_lvalue); static_assert(meta::detail::cvref_traits::is_rvalue); static_assert(!meta::detail::cvref_traits::is_const); static_assert(!meta::detail::cvref_traits::is_volatile); static_assert(!meta::detail::cvref_traits::is_lvalue); static_assert(meta::detail::cvref_traits::is_rvalue); static_assert(meta::detail::cvref_traits::is_const); static_assert(!meta::detail::cvref_traits::is_volatile); static_assert(!meta::detail::cvref_traits::is_lvalue); static_assert(meta::detail::cvref_traits::is_rvalue); static_assert(meta::detail::cvref_traits::is_const); static_assert(meta::detail::cvref_traits::is_volatile); } SUBCASE("cvref_traits::copy_to") { static_assert(std::is_same_v::copy_to, int>); static_assert(std::is_same_v::copy_to, const int>); static_assert(std::is_same_v::copy_to, const volatile int>); static_assert(std::is_same_v::copy_to, int&>); static_assert(std::is_same_v::copy_to, const int&>); static_assert(std::is_same_v::copy_to, volatile int&>); static_assert(std::is_same_v::copy_to, const volatile int&&>); static_assert(std::is_same_v::copy_to, int>); static_assert(std::is_same_v::copy_to, const int>); static_assert(std::is_same_v::copy_to, const volatile int>); static_assert(std::is_same_v::copy_to, int&>); static_assert(std::is_same_v::copy_to, const int&>); static_assert(std::is_same_v::copy_to, volatile int&>); static_assert(std::is_same_v::copy_to, const volatile int&&>); static_assert(std::is_same_v::copy_to, int>); static_assert(std::is_same_v::copy_to, const int>); static_assert(std::is_same_v::copy_to, const volatile int>); static_assert(std::is_same_v::copy_to, int&>); static_assert(std::is_same_v::copy_to, const int&>); static_assert(std::is_same_v::copy_to, volatile int&>); static_assert(std::is_same_v::copy_to, const volatile int&&>); } }