diff options
Diffstat (limited to 'src/boost/libs/container/example/doc_emplace.cpp')
-rw-r--r-- | src/boost/libs/container/example/doc_emplace.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/boost/libs/container/example/doc_emplace.cpp b/src/boost/libs/container/example/doc_emplace.cpp new file mode 100644 index 00000000..10ab7437 --- /dev/null +++ b/src/boost/libs/container/example/doc_emplace.cpp @@ -0,0 +1,44 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2009-2013. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#include <boost/container/detail/config_begin.hpp> +#include <boost/container/detail/workaround.hpp> +//[doc_emplace +#include <boost/container/list.hpp> +#include <cassert> + +//Non-copyable and non-movable class +class non_copy_movable +{ + non_copy_movable(const non_copy_movable &); + non_copy_movable& operator=(const non_copy_movable &); + + public: + non_copy_movable(int = 0) {} +}; + +int main () +{ + using namespace boost::container; + + //Store non-copyable and non-movable objects in a list + list<non_copy_movable> l; + non_copy_movable ncm; + + //A new element will be built calling non_copy_movable(int) constructor + l.emplace(l.begin(), 0); + assert(l.size() == 1); + + //A new element will be value initialized + l.emplace(l.begin()); + assert(l.size() == 2); + return 0; +} +//] +#include <boost/container/detail/config_end.hpp> |