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


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to