blob: 01f9757350f6d5ed369dcba1b7253880d096f344 [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// <iterator>
11
12// back_insert_iterator
13
14// requires CopyConstructible<Cont::value_type>
Howard Hinnant712522c2010-08-22 00:29:01 +000015// back_insert_iterator<Cont>&
Howard Hinnantbc8d3f92010-05-11 19:42:16 +000016// operator=(Cont::value_type&& value);
17
18#include <iterator>
19
Howard Hinnant73d21a42010-09-04 23:28:19 +000020#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
Howard Hinnantbc8d3f92010-05-11 19:42:16 +000021
22#include <vector>
23#include <memory>
24#include <cassert>
25
26template <class C>
27void
28test(C c)
29{
30 std::back_insert_iterator<C> i(c);
31 i = typename C::value_type();
32 assert(c.back() == typename C::value_type());
33}
34
Howard Hinnant73d21a42010-09-04 23:28:19 +000035#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
Howard Hinnantbc8d3f92010-05-11 19:42:16 +000036
37int main()
38{
Howard Hinnant73d21a42010-09-04 23:28:19 +000039#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
Howard Hinnantbc8d3f92010-05-11 19:42:16 +000040 test(std::vector<std::unique_ptr<int> >());
41#endif
42}