rvalue_ref.pass.cpp revision 73d21a4f0774d3fadab98e690619a359cfb160a3
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===// 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The LLVM Compiler Infrastructure 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// This file is distributed under the University of Illinois Open Source 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// License. See LICENSE.TXT for details. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===// 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// type_traits 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// rvalue_ref 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <type_traits> 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template <class T> 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void test_rvalue_ref() 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci{ 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci static_assert(std::is_reference<T>::value, ""); 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci static_assert(!std::is_arithmetic<T>::value, ""); 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static_assert(!std::is_fundamental<T>::value, ""); 2203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) static_assert(!std::is_object<T>::value, ""); 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static_assert(!std::is_scalar<T>::value, ""); 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static_assert( std::is_compound<T>::value, ""); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static_assert(!std::is_member_pointer<T>::value, ""); 2603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int main() 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) test_rvalue_ref<int&&>(); 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) test_rvalue_ref<const int&&>(); 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)