1//===----------------------------------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// <functional>
11
12// reference_wrapper
13
14// template <ObjectType T> reference_wrapper<T> ref(T& t);
15
16// Don't allow binding to a temp
17
18// XFAIL: c++98, c++03
19
20#include <functional>
21
22struct A {};
23
24const A source() {return A();}
25
26int main()
27{
28    std::reference_wrapper<const A> r = std::ref(source());
29}
30