blob: 6c735037755c472375878fcc46601eab46e9ad08 [file] [log] [blame]
Howard Hinnantbc8d3f92010-05-11 19:42:16 +00001//===----------------------------------------------------------------------===//
2//
Howard Hinnantf5256e12010-05-11 21:36:01 +00003// The LLVM Compiler Infrastructure
Howard Hinnantbc8d3f92010-05-11 19:42:16 +00004//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// <utility>
11
12// template <class T> typename add_rvalue_reference<T>::type declval() noexcept;
13
14#include <utility>
15#include <type_traits>
16
17class A
18{
19 A(const A&);
20 A& operator=(const A&);
21};
22
23int main()
24{
Howard Hinnant73d21a42010-09-04 23:28:19 +000025#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
Howard Hinnantbc8d3f92010-05-11 19:42:16 +000026 static_assert((std::is_same<decltype(std::declval<A>()), A&&>::value), "");
27#else
28 static_assert((std::is_same<decltype(std::declval<A>()), A>::value), "");
29#endif
30}