//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is dual licensed under the MIT and the University of Illinois Open // Source Licenses. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // front_insert_iterator // front_insert_iterator& // operator=(const Cont::value_type& value); #include #include #include #include "nasty_containers.hpp" template void test(C c) { const typename C::value_type v = typename C::value_type(); std::front_insert_iterator i(c); i = v; assert(c.front() == v); } class Copyable { int data_; public: Copyable() : data_(0) {} ~Copyable() {data_ = -1;} friend bool operator==(const Copyable& x, const Copyable& y) {return x.data_ == y.data_;} }; int main() { test(std::list()); test(nasty_list()); }