Как создать упаковщик std :: string, который бы сохранял ptr для std :: string и ptr для специальной функции класса из класса, создавшего этот экземпляр оболочки? - PullRequest
0 голосов
/ 25 января 2012

У меня есть класс.Имеет функции void delete_ptr(void *); и void push_into(std::set<my_string> ** pps);.У меня есть 10 экземпляров этого класса.Каждый из них размещается в разных кучах.У меня есть моя программа в основной куче, там же, где моя карта.Я хочу вызвать каждый из моих экземпляров класса push_into с моей картой из main.каждый из push_into будет вызывать (**pps).insert(std::string("Hello str")); или (**pps).insert("Hello char");.Как создать такой класс my_string, который бы содержал в нем **std::string, а также класс ptr до delete_ptr, который создает экземпляр класса my_string?

Основные задачи, которые меня интересуют:

  • как создать конструктор, чтобы он сохранял указатели на строку, и delete_ptr экземпляра, который его создал?

1 Ответ

1 голос
/ 25 января 2012

Вы можете использовать boost::shared_ptr с настраиваемым деллокатором . Укажите ваш delete_ptr как пользовательский диллокатор, используя boost::bind

...