[cfe-commits] [libcxx] r111544 - in /libcxx/trunk: include/type_traits test/utilities/meta/meta.rel/is_explicitly_convertible.pass.cpp

Howard Hinnant hhinnant at apple.com
Thu Aug 19 12:09:09 PDT 2010


Author: hhinnant
Date: Thu Aug 19 14:09:08 2010
New Revision: 111544

URL: http://llvm.org/viewvc/llvm-project?rev=111544&view=rev
Log:
DE 19

Removed:
    libcxx/trunk/test/utilities/meta/meta.rel/is_explicitly_convertible.pass.cpp
Modified:
    libcxx/trunk/include/type_traits

Modified: libcxx/trunk/include/type_traits
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/type_traits?rev=111544&r1=111543&r2=111544&view=diff
==============================================================================
--- libcxx/trunk/include/type_traits (original)
+++ libcxx/trunk/include/type_traits Thu Aug 19 14:09:08 2010
@@ -115,7 +115,6 @@
     template <class T, class U> struct is_same;
     template <class Base, class Derived> struct is_base_of;
     template <class From, class To> struct is_convertible;
-    template <class From, class To> struct is_explicitly_convertible;
     template <class T> struct underlying_type;
     
     // Alignment properties and transformations:

Removed: libcxx/trunk/test/utilities/meta/meta.rel/is_explicitly_convertible.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/utilities/meta/meta.rel/is_explicitly_convertible.pass.cpp?rev=111543&view=auto
==============================================================================
--- libcxx/trunk/test/utilities/meta/meta.rel/is_explicitly_convertible.pass.cpp (original)
+++ libcxx/trunk/test/utilities/meta/meta.rel/is_explicitly_convertible.pass.cpp (removed)
@@ -1 +0,0 @@
-//===----------------------------------------------------------------------===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

// type_traits

// is_explicitly_convertible

#include <type_traits>

typedef void Function();
typedef char Array[1];

int main()
{
    {
    static_assert(( std::is_explicitly_convertible<void, void>::value), "");
    static_assert(( std::is_explicitly_convertible<const void, void>::value), "");
    static_assert(( std::is_explicitly_convertible<void, const void>::value), "");
    static_assert(( std::is_explicitly_convertible<const void, const void>::value), "");

    static_assert((!std::is_explicitly_convertible<void, Function>::value), "");
    static_assert((!std::is_explicitly_convertible<const void, Function>::value), "");

    sta
 tic_assert((!std::is_explicitly_convertible<void, Function&>::value), "");
    static_assert((!std::is_explicitly_convertible<const void, Function&>::value), "");

    static_assert((!std::is_explicitly_convertible<void, Function*>::value), "");
    static_assert((!std::is_explicitly_convertible<void, Function* const>::value), "");
    static_assert((!std::is_explicitly_convertible<const void, Function*>::value), "");
    static_assert((!std::is_explicitly_convertible<const void, Function*const >::value), "");

    static_assert((!std::is_explicitly_convertible<void, Array>::value), "");
    static_assert((!std::is_explicitly_convertible<void, const Array>::value), "");
    static_assert((!std::is_explicitly_convertible<const void, Array>::value), "");
    static_assert((!std::is_explicitly_convertible<const void, const Array>::value), "");

    static_assert((!std::is_explicitly_convertible<void, Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<void,
  const Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<const void, Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<const void, const Array&>::value), "");

    static_assert((!std::is_explicitly_convertible<void, char>::value), "");
    static_assert((!std::is_explicitly_convertible<void, const char>::value), "");
    static_assert((!std::is_explicitly_convertible<const void, char>::value), "");
    static_assert((!std::is_explicitly_convertible<const void, const char>::value), "");

    static_assert((!std::is_explicitly_convertible<void, char&>::value), "");
    static_assert((!std::is_explicitly_convertible<void, const char&>::value), "");
    static_assert((!std::is_explicitly_convertible<const void, char&>::value), "");
    static_assert((!std::is_explicitly_convertible<const void, const char&>::value), "");

    static_assert((!std::is_explicitly_convertible<void, char*>::value), "");
    static_assert((!std::is_explici
 tly_convertible<void, const char*>::value), "");
    static_assert((!std::is_explicitly_convertible<const void, char*>::value), "");
    static_assert((!std::is_explicitly_convertible<const void, const char*>::value), "");
    }
    {
    static_assert((!std::is_explicitly_convertible<Function, void>::value), "");
    static_assert((!std::is_explicitly_convertible<Function, const void>::value), "");

    static_assert((!std::is_explicitly_convertible<Function, Function>::value), "");

    static_assert((!std::is_explicitly_convertible<Function, Function&>::value), "");
    static_assert((!std::is_explicitly_convertible<Function, Function&>::value), "");

    static_assert(( std::is_explicitly_convertible<Function, Function*>::value), "");
    static_assert(( std::is_explicitly_convertible<Function, Function* const>::value), "");

    static_assert((!std::is_explicitly_convertible<Function, Array>::value), "");
    static_assert((!std::is_explicitly_convertible<Function, cons
 t Array>::value), "");

    static_assert((!std::is_explicitly_convertible<Function, Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<Function, const Array&>::value), "");

    static_assert((!std::is_explicitly_convertible<Function, char>::value), "");
    static_assert((!std::is_explicitly_convertible<Function, const char>::value), "");

    static_assert((!std::is_explicitly_convertible<Function, char&>::value), "");
    static_assert((!std::is_explicitly_convertible<Function, const char&>::value), "");

    static_assert((!std::is_explicitly_convertible<Function, char*>::value), "");
    static_assert((!std::is_explicitly_convertible<Function, const char*>::value), "");
    }
    {
    static_assert((!std::is_explicitly_convertible<Function&, void>::value), "");
    static_assert((!std::is_explicitly_convertible<Function&, const void>::value), "");

    static_assert((!std::is_explicitly_convertible<Function&, Function>::value), "");

    static_a
 ssert(( std::is_explicitly_convertible<Function&, Function&>::value), "");
    static_assert(( std::is_explicitly_convertible<Function&, const Function&>::value), "");

    static_assert(( std::is_explicitly_convertible<Function&, Function*>::value), "");
    static_assert(( std::is_explicitly_convertible<Function&, Function* const>::value), "");

    static_assert((!std::is_explicitly_convertible<Function&, Array>::value), "");
    static_assert((!std::is_explicitly_convertible<Function&, const Array>::value), "");

    static_assert((!std::is_explicitly_convertible<Function&, Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<Function&, const Array&>::value), "");

    static_assert((!std::is_explicitly_convertible<Function&, char>::value), "");
    static_assert((!std::is_explicitly_convertible<Function&, const char>::value), "");

    static_assert((!std::is_explicitly_convertible<Function&, char&>::value), "");
    static_assert((!std::is_explicitl
 y_convertible<Function&, const char&>::value), "");

    static_assert((!std::is_explicitly_convertible<Function&, char*>::value), "");
    static_assert((!std::is_explicitly_convertible<Function&, const char*>::value), "");
    }
    {
    static_assert((!std::is_explicitly_convertible<Function*, void>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*const, void>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*, const void>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*const, const void>::value), "");

    static_assert((!std::is_explicitly_convertible<Function*, Function>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*const, Function>::value), "");

    static_assert((!std::is_explicitly_convertible<Function*, Function&>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*const, Function&>::value), "");

    static_assert(( std::is_explicitly_conv
 ertible<Function*, Function*>::value), "");
    static_assert(( std::is_explicitly_convertible<Function*, Function* const>::value), "");
    static_assert(( std::is_explicitly_convertible<Function*const, Function*>::value), "");
    static_assert(( std::is_explicitly_convertible<Function*const, Function*const >::value), "");

    static_assert((!std::is_explicitly_convertible<Function*, Array>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*, const Array>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*const, Array>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*const, const Array>::value), "");

    static_assert((!std::is_explicitly_convertible<Function*, Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*, const Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*const, Array&>::value), "");
    static_assert((!std::is_explicitly_conv
 ertible<Function*const, const Array&>::value), "");

    static_assert((!std::is_explicitly_convertible<Function*, char>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*, const char>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*const, char>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*const, const char>::value), "");

    static_assert((!std::is_explicitly_convertible<Function*, char&>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*, const char&>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*const, char&>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*const, const char&>::value), "");

    static_assert((!std::is_explicitly_convertible<Function*, char*>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*, const char*>::value), "");
    static_assert((!std::is_explicitly_convertible<Functio
 n*const, char*>::value), "");
    static_assert((!std::is_explicitly_convertible<Function*const, const char*>::value), "");
    }
    {
    static_assert((!std::is_explicitly_convertible<Array, void>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array, void>::value), "");
    static_assert((!std::is_explicitly_convertible<Array, const void>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array, const void>::value), "");

    static_assert((!std::is_explicitly_convertible<Array, Function>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array, Function>::value), "");

    static_assert((!std::is_explicitly_convertible<Array, Function&>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array, Function&>::value), "");

    static_assert((!std::is_explicitly_convertible<Array, Function*>::value), "");
    static_assert((!std::is_explicitly_convertible<Array, Function* const>::value), "");
     static_assert((!std::is_explicitly_convertible<const Array, Function*>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array, Function*const >::value), "");

    static_assert((!std::is_explicitly_convertible<Array, Array>::value), "");
    static_assert((!std::is_explicitly_convertible<Array, const Array>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array, Array>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array, const Array>::value), "");

    static_assert((!std::is_explicitly_convertible<Array, Array&>::value), "");
    static_assert(( std::is_explicitly_convertible<Array, const Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array, Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array, const Array&>::value), "");

    static_assert((!std::is_explicitly_convertible<Array, char>::value), "");
    static_assert((!std::is_explicitly_c
 onvertible<Array, const char>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array, char>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array, const char>::value), "");

    static_assert((!std::is_explicitly_convertible<Array, char&>::value), "");
    static_assert((!std::is_explicitly_convertible<Array, const char&>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array, char&>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array, const char&>::value), "");

    static_assert(( std::is_explicitly_convertible<Array, char*>::value), "");
    static_assert(( std::is_explicitly_convertible<Array, const char*>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array, char*>::value), "");
    static_assert(( std::is_explicitly_convertible<const Array, const char*>::value), "");
    }
    {
    static_assert((!std::is_explicitly_convertible<Array&, void>::value), "")
 ;
    static_assert((!std::is_explicitly_convertible<const Array&, void>::value), "");
    static_assert((!std::is_explicitly_convertible<Array&, const void>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array&, const void>::value), "");

    static_assert((!std::is_explicitly_convertible<Array&, Function>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array&, Function>::value), "");

    static_assert((!std::is_explicitly_convertible<Array&, Function&>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array&, Function&>::value), "");

    static_assert((!std::is_explicitly_convertible<Array&, Function*>::value), "");
    static_assert((!std::is_explicitly_convertible<Array&, Function* const>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array&, Function*>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array&, Function*const >::value), "");

    static_asser
 t((!std::is_explicitly_convertible<Array&, Array>::value), "");
    static_assert((!std::is_explicitly_convertible<Array&, const Array>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array&, Array>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array&, const Array>::value), "");

    static_assert(( std::is_explicitly_convertible<Array&, Array&>::value), "");
    static_assert(( std::is_explicitly_convertible<Array&, const Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array&, Array&>::value), "");
    static_assert(( std::is_explicitly_convertible<const Array&, const Array&>::value), "");

    static_assert((!std::is_explicitly_convertible<Array&, char>::value), "");
    static_assert((!std::is_explicitly_convertible<Array&, const char>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array&, char>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array
 &, const char>::value), "");

    static_assert((!std::is_explicitly_convertible<Array&, char&>::value), "");
    static_assert((!std::is_explicitly_convertible<Array&, const char&>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array&, char&>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array&, const char&>::value), "");

    static_assert(( std::is_explicitly_convertible<Array&, char*>::value), "");
    static_assert(( std::is_explicitly_convertible<Array&, const char*>::value), "");
    static_assert((!std::is_explicitly_convertible<const Array&, char*>::value), "");
    static_assert(( std::is_explicitly_convertible<const Array&, const char*>::value), "");
    }
    {
    static_assert((!std::is_explicitly_convertible<char, void>::value), "");
    static_assert((!std::is_explicitly_convertible<const char, void>::value), "");
    static_assert((!std::is_explicitly_convertible<char, const void>::value), "");
    static_asse
 rt((!std::is_explicitly_convertible<const char, const void>::value), "");

    static_assert((!std::is_explicitly_convertible<char, Function>::value), "");
    static_assert((!std::is_explicitly_convertible<const char, Function>::value), "");

    static_assert((!std::is_explicitly_convertible<char, Function&>::value), "");
    static_assert((!std::is_explicitly_convertible<const char, Function&>::value), "");

    static_assert((!std::is_explicitly_convertible<char, Function*>::value), "");
    static_assert((!std::is_explicitly_convertible<char, Function* const>::value), "");
    static_assert((!std::is_explicitly_convertible<const char, Function*>::value), "");
    static_assert((!std::is_explicitly_convertible<const char, Function*const >::value), "");

    static_assert((!std::is_explicitly_convertible<char, Array>::value), "");
    static_assert((!std::is_explicitly_convertible<char, const Array>::value), "");
    static_assert((!std::is_explicitly_convertible<const ch
 ar, Array>::value), "");
    static_assert((!std::is_explicitly_convertible<const char, const Array>::value), "");

    static_assert((!std::is_explicitly_convertible<char, Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<char, const Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<const char, Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<const char, const Array&>::value), "");

    static_assert(( std::is_explicitly_convertible<char, char>::value), "");
    static_assert(( std::is_explicitly_convertible<char, const char>::value), "");
    static_assert(( std::is_explicitly_convertible<const char, char>::value), "");
    static_assert(( std::is_explicitly_convertible<const char, const char>::value), "");

    static_assert((!std::is_explicitly_convertible<char, char&>::value), "");
    static_assert(( std::is_explicitly_convertible<char, const char&>::value), "");
    static_assert((!std::is_explicitl
 y_convertible<const char, char&>::value), "");
    static_assert(( std::is_explicitly_convertible<const char, const char&>::value), "");

    static_assert((!std::is_explicitly_convertible<char, char*>::value), "");
    static_assert((!std::is_explicitly_convertible<char, const char*>::value), "");
    static_assert((!std::is_explicitly_convertible<const char, char*>::value), "");
    static_assert((!std::is_explicitly_convertible<const char, const char*>::value), "");
    }
    {
    static_assert((!std::is_explicitly_convertible<char&, void>::value), "");
    static_assert((!std::is_explicitly_convertible<const char&, void>::value), "");
    static_assert((!std::is_explicitly_convertible<char&, const void>::value), "");
    static_assert((!std::is_explicitly_convertible<const char&, const void>::value), "");

    static_assert((!std::is_explicitly_convertible<char&, Function>::value), "");
    static_assert((!std::is_explicitly_convertible<const char&, Function>::value), "
 ");

    static_assert((!std::is_explicitly_convertible<char&, Function&>::value), "");
    static_assert((!std::is_explicitly_convertible<const char&, Function&>::value), "");

    static_assert((!std::is_explicitly_convertible<char&, Function*>::value), "");
    static_assert((!std::is_explicitly_convertible<char&, Function* const>::value), "");
    static_assert((!std::is_explicitly_convertible<const char&, Function*>::value), "");
    static_assert((!std::is_explicitly_convertible<const char&, Function*const >::value), "");

    static_assert((!std::is_explicitly_convertible<char&, Array>::value), "");
    static_assert((!std::is_explicitly_convertible<char&, const Array>::value), "");
    static_assert((!std::is_explicitly_convertible<const char&, Array>::value), "");
    static_assert((!std::is_explicitly_convertible<const char&, const Array>::value), "");

    static_assert((!std::is_explicitly_convertible<char&, Array&>::value), "");
    static_assert((!std::is_expli
 citly_convertible<char&, const Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<const char&, Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<const char&, const Array&>::value), "");

    static_assert(( std::is_explicitly_convertible<char&, char>::value), "");
    static_assert(( std::is_explicitly_convertible<char&, const char>::value), "");
    static_assert(( std::is_explicitly_convertible<const char&, char>::value), "");
    static_assert(( std::is_explicitly_convertible<const char&, const char>::value), "");

    static_assert(( std::is_explicitly_convertible<char&, char&>::value), "");
    static_assert(( std::is_explicitly_convertible<char&, const char&>::value), "");
    static_assert((!std::is_explicitly_convertible<const char&, char&>::value), "");
    static_assert(( std::is_explicitly_convertible<const char&, const char&>::value), "");

    static_assert((!std::is_explicitly_convertible<char&, char*>::value), "");
     static_assert((!std::is_explicitly_convertible<char&, const char*>::value), "");
    static_assert((!std::is_explicitly_convertible<const char&, char*>::value), "");
    static_assert((!std::is_explicitly_convertible<const char&, const char*>::value), "");
    }
    {
    static_assert((!std::is_explicitly_convertible<char*, void>::value), "");
    static_assert((!std::is_explicitly_convertible<const char*, void>::value), "");
    static_assert((!std::is_explicitly_convertible<char*, const void>::value), "");
    static_assert((!std::is_explicitly_convertible<const char*, const void>::value), "");

    static_assert((!std::is_explicitly_convertible<char*, Function>::value), "");
    static_assert((!std::is_explicitly_convertible<const char*, Function>::value), "");

    static_assert((!std::is_explicitly_convertible<char*, Function&>::value), "");
    static_assert((!std::is_explicitly_convertible<const char*, Function&>::value), "");

    static_assert((!std::is_explici
 tly_convertible<char*, Function*>::value), "");
    static_assert((!std::is_explicitly_convertible<char*, Function* const>::value), "");
    static_assert((!std::is_explicitly_convertible<const char*, Function*>::value), "");
    static_assert((!std::is_explicitly_convertible<const char*, Function*const >::value), "");

    static_assert((!std::is_explicitly_convertible<char*, Array>::value), "");
    static_assert((!std::is_explicitly_convertible<char*, const Array>::value), "");
    static_assert((!std::is_explicitly_convertible<const char*, Array>::value), "");
    static_assert((!std::is_explicitly_convertible<const char*, const Array>::value), "");

    static_assert((!std::is_explicitly_convertible<char*, Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<char*, const Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<const char*, Array&>::value), "");
    static_assert((!std::is_explicitly_convertible<const char*, const Arra
 y&>::value), "");

    static_assert((!std::is_explicitly_convertible<char*, char>::value), "");
    static_assert((!std::is_explicitly_convertible<char*, const char>::value), "");
    static_assert((!std::is_explicitly_convertible<const char*, char>::value), "");
    static_assert((!std::is_explicitly_convertible<const char*, const char>::value), "");

    static_assert((!std::is_explicitly_convertible<char*, char&>::value), "");
    static_assert((!std::is_explicitly_convertible<char*, const char&>::value), "");
    static_assert((!std::is_explicitly_convertible<const char*, char&>::value), "");
    static_assert((!std::is_explicitly_convertible<const char*, const char&>::value), "");

    static_assert(( std::is_explicitly_convertible<char*, char*>::value), "");
    static_assert(( std::is_explicitly_convertible<char*, const char*>::value), "");
    static_assert((!std::is_explicitly_convertible<const char*, char*>::value), "");
    static_assert(( std::is_explicitly_conv
 ertible<const char*, const char*>::value), "");
    }
}
\ No newline at end of file





More information about the cfe-commits mailing list