#include <vector>
struct foo
{
foo() {}
private:
foo(const foo&);
void operator=(const foo&);
};
int main()
{
std::vector<foo> v;
v.reserve(100);
v.emplace();
return v.size();
}
I2luY2x1ZGUgPHZlY3Rvcj4KCnN0cnVjdCBmb28KewogICAgZm9vKCkge30KcHJpdmF0ZToKICAgIGZvbyhjb25zdCBmb28mKTsKICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IGZvbyYpOwp9OwoKaW50IG1haW4oKQp7CiAgICBzdGQ6OnZlY3Rvcjxmb28+IHY7CiAgICB2LnJlc2VydmUoMTAwKTsKICAgIHYuZW1wbGFjZSgpOwogICAgcmV0dXJuIHYuc2l6ZSgpOwp9
prog.cpp: In function 'int main()':
prog.cpp:15:15: error: no matching function for call to 'std::vector<foo>::emplace()'
In file included from /usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/vector:63:0,
from prog.cpp:1:
prog.cpp: In function 'void std::_Construct(_T1*, _T2&&) [with _T1 = foo, _T2 = foo]':
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/stl_uninitialized.h:74:3: instantiated from 'static _ForwardIterator std::__uninitialized_copy<<anonymous> >::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<foo*>, _ForwardIterator = foo*, bool <anonymous> = false]'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/stl_uninitialized.h:116:46: instantiated from '_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<foo*>, _ForwardIterator = foo*]'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/stl_uninitialized.h:318:63: instantiated from '_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = std::move_iterator<foo*>, _ForwardIterator = foo*, _Tp = foo]'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/stl_vector.h:970:8: instantiated from 'std::vector<_Tp, _Alloc>::pointer std::vector<_Tp, _Alloc>::_M_allocate_and_copy(std::vector::size_type, _ForwardIterator, _ForwardIterator) [with _ForwardIterator = std::move_iterator<foo*>, _Tp = foo, _Alloc = std::allocator<foo>, std::vector<_Tp, _Alloc>::pointer = foo*, std::vector::size_type = unsigned int]'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/vector.tcc:74:56: instantiated from 'void std::vector<_Tp, _Alloc>::reserve(std::vector::size_type) [with _Tp = foo, _Alloc = std::allocator<foo>, std::vector::size_type = unsigned int]'
prog.cpp:14:18: instantiated from here
prog.cpp:7:5: error: 'foo::foo(const foo&)' is private
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/stl_construct.h:80:7: error: within this context