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