| 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 | }
|
|---|