//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is dual licensed under the MIT and the University of Illinois Open // Source Licenses. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // type_traits // is_convertible #include template void test_is_convertible() { static_assert((std::is_convertible::value), ""); static_assert((std::is_convertible::value), ""); static_assert((std::is_convertible::value), ""); static_assert((std::is_convertible::value), ""); } template void test_is_not_convertible() { static_assert((!std::is_convertible::value), ""); static_assert((!std::is_convertible::value), ""); static_assert((!std::is_convertible::value), ""); static_assert((!std::is_convertible::value), ""); } typedef void Function(); typedef char Array[1]; class NonCopyable { NonCopyable(NonCopyable&); }; int main() { // void test_is_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); // Function test_is_not_convertible (); test_is_not_convertible (); test_is_convertible (); test_is_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); // Function& test_is_not_convertible (); test_is_not_convertible (); test_is_convertible (); test_is_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); // Function* test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); // Array test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); static_assert((!std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); static_assert((!std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); test_is_not_convertible (); test_is_not_convertible (); static_assert(( std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); static_assert((!std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); // Array& test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); static_assert(( std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); static_assert((!std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); test_is_not_convertible (); test_is_not_convertible (); static_assert(( std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); static_assert((!std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); // char test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_convertible (); static_assert((!std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); static_assert((!std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); test_is_not_convertible (); // char& test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_convertible (); static_assert(( std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); static_assert((!std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); test_is_not_convertible (); // char* test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); test_is_not_convertible (); static_assert(( std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); static_assert((!std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); // NonCopyable static_assert((std::is_convertible::value), ""); static_assert((std::is_convertible::value), ""); static_assert((std::is_convertible::value), ""); static_assert((std::is_convertible::value), ""); static_assert((std::is_convertible::value), ""); static_assert((std::is_convertible::value), ""); static_assert((std::is_convertible::value), ""); static_assert((std::is_convertible::value), ""); static_assert((!std::is_convertible::value), ""); }