rvalue_ref.pass.cpp revision 73d21a4f0774d3fadab98e690619a359cfb160a3
16d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)//===----------------------------------------------------------------------===// 26d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// 36d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// The LLVM Compiler Infrastructure 46d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// 56d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// This file is distributed under the University of Illinois Open Source 66d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// License. See LICENSE.TXT for details. 76d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// 86d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)//===----------------------------------------------------------------------===// 96d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 106d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// type_traits 116d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 126d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// rvalue_ref 136d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 146d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include <type_traits> 156d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 166d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)template <class T> 176d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)void test_rvalue_ref() 186d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles){ 196d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) static_assert(!std::is_void<T>::value, ""); 206d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) static_assert(!std::is_integral<T>::value, ""); 216d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) static_assert(!std::is_floating_point<T>::value, ""); 226d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) static_assert(!std::is_array<T>::value, ""); 236d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) static_assert(!std::is_pointer<T>::value, ""); 246d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) static_assert(!std::is_lvalue_reference<T>::value, ""); 256d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) static_assert( std::is_rvalue_reference<T>::value, ""); 266d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) static_assert(!std::is_member_object_pointer<T>::value, ""); 276d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) static_assert(!std::is_member_function_pointer<T>::value, ""); 286d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) static_assert(!std::is_enum<T>::value, ""); 296d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) static_assert(!std::is_union<T>::value, ""); 306d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) static_assert(!std::is_class<T>::value, ""); 316d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) static_assert(!std::is_function<T>::value, ""); 326d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)} 336d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdochint main() 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch{ 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch test_rvalue_ref<int&&>(); 386d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) test_rvalue_ref<const int&&>(); 396d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES 406d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)} 416d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)