Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <vector>
- #include <boost/shared_ptr.hpp>
- #include <iostream>
- using namespace std;
- int main(int argc, char const *argv[])
- {
- typedef int T;
- typedef std::vector<T> content_1d_t;
- typedef boost::shared_ptr<content_1d_t> storage_1d_t;
- typedef std::vector<storage_1d_t> content_2d_t;
- typedef boost::shared_ptr<content_2d_t> storage_2d_t;
- size_t dim1 = 10;
- size_t dim2 = 1;
- content_2d_t* content_1 = new content_2d_t();
- content_1->reserve(dim2);
- storage_2d_t storage_1(content_1);
- for (int i = 0; i < dim2; ++i)
- {
- storage_1->push_back(storage_1d_t(new content_1d_t(dim1)));
- }
- //content_2d_t* content_2 = new content_2d_t(dim2);
- storage_2d_t storage_2 = storage_1;
- for (int i = 0; i < dim2; ++i)
- {
- cout<< "use count before : "<< storage_1->operator[](i).use_count()<<endl;
- storage_2->operator[](i) = storage_1->operator[](i);
- cout<< "use count after: "<< storage_1->operator[](i).use_count()<<endl;
- }
- for (int i = 0; i < dim2; ++i)
- {
- cout<< "use count before : "<< storage_1->operator[](i).use_count()<<endl;
- storage_1d_t ref = storage_1->operator[](i);
- storage_2->operator[](i) = ref;
- cout<< "use count after: "<< storage_1->operator[](i).use_count()<<endl;
- }
- /* code */
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement