//===----------------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // __cccl_is_referenceable // // [defns.referenceable] defines "a referenceable type" as: // An object type, a function type that does not have cv-qualifiers // or a ref-qualifier, or a reference type. // #include #include #include "test_macros.h" struct Foo {}; static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); #if !TEST_COMPILER(MSVC) static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); #endif // !TEST_COMPILER(MSVC) // Functions without cv-qualifiers are referenceable static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); static_assert((!cuda::std::__cccl_is_referenceable::value), ""); // member functions with or without cv-qualifiers are referenceable static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); static_assert((cuda::std::__cccl_is_referenceable::value), ""); int main(int, char**) { return 0; }