//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// type_traits
// remove_pointer
#include<type_traits>template<classT,classU>voidtest_remove_pointer(){static_assert((std::is_same<typenamestd::remove_pointer<T>::type,U>::value),"");}intmain(){test_remove_pointer<void,void>();test_remove_pointer<int,int>();test_remove_pointer<int[3],int[3]>();test_remove_pointer<int*,int>();test_remove_pointer<constint*,constint>();test_remove_pointer<int**,int*>();test_remove_pointer<int**const,int*>();test_remove_pointer<int*const*,int*const>();test_remove_pointer<constint**,constint*>();test_remove_pointer<int&,int&>();test_remove_pointer<constint&,constint&>();test_remove_pointer<int(&)[3],int(&)[3]>();test_remove_pointer<int(*)[3],int[3]>();test_remove_pointer<int*&,int*&>();test_remove_pointer<constint*&,constint*&>();}