blob: 21bf3f4492b0209a4e96be5c7586623420d6dc28 [file] [log] [blame]
Howard Hinnantc52f43e2010-08-22 00:59:46 +00001//===----------------------------------------------------------------------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// type_traits
11
12// rvalue_ref
13
14#include <type_traits>
15
16template <class T>
17void test_rvalue_ref()
18{
19 static_assert(std::is_reference<T>::value, "");
20 static_assert(!std::is_arithmetic<T>::value, "");
21 static_assert(!std::is_fundamental<T>::value, "");
22 static_assert(!std::is_object<T>::value, "");
23 static_assert(!std::is_scalar<T>::value, "");
24 static_assert( std::is_compound<T>::value, "");
25 static_assert(!std::is_member_pointer<T>::value, "");
26}
27
28int main()
29{
Howard Hinnant73d21a42010-09-04 23:28:19 +000030#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
Howard Hinnantc52f43e2010-08-22 00:59:46 +000031 test_rvalue_ref<int&&>();
32 test_rvalue_ref<const int&&>();
Howard Hinnant73d21a42010-09-04 23:28:19 +000033#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
Howard Hinnantc52f43e2010-08-22 00:59:46 +000034}