1 | #include <boost/container/vector.hpp>
|
---|
2 | #include <boost/move/utility.hpp>
|
---|
3 |
|
---|
4 | class non_copyable {
|
---|
5 | BOOST_MOVABLE_BUT_NOT_COPYABLE(non_copyable)
|
---|
6 |
|
---|
7 | public:
|
---|
8 | non_copyable() {}
|
---|
9 | non_copyable(BOOST_RV_REF(non_copyable)) {}
|
---|
10 | non_copyable& operator=(BOOST_RV_REF(non_copyable)) { return *this; }
|
---|
11 | };
|
---|
12 |
|
---|
13 | boost::container::vector<non_copyable> create1() {
|
---|
14 | return boost::container::vector<non_copyable>();
|
---|
15 | }
|
---|
16 |
|
---|
17 | boost::container::vector<non_copyable> create2() {
|
---|
18 | boost::container::vector<non_copyable> v;
|
---|
19 | return boost::move(v);
|
---|
20 | }
|
---|
21 |
|
---|
22 | int main() {
|
---|
23 | boost::container::vector<non_copyable> v1 = create1();
|
---|
24 | boost::container::vector<non_copyable> v2 = create2();
|
---|
25 | return 0;
|
---|
26 | }
|
---|