Я пытаюсь использовать shared_ptr для защиты утечек памяти, которые библиотека sqlite3 бросает в мое приложение.Использование shared_ptr с sqlite3
Мне нужно перевести мой простой код на C++ в защищенную версию без огромных изменений. Текущее состояние моего кода что-то вроде:
sqlite3* db = NULL;
sqlite3_open(dbname.c_str(), &db);
sqlite3_close(db);
И я попробовал:
std::shared_ptr<sqlite3> db(NULL);
sqlite3_close(db.get());
Но я не могу перевести открытую функцию, поскольку она запрашивает sqlite3 ** параметр, который я не способный эмулировать общий указатель. Я нашел std :: shared_ptr соединение (rawConnec, sqlite3_close); , но этот вид функции не имеет официальной документации или любого примера.
Я так заблокирован, Вы так много
«Этот вид функции» является конструктором и [документирован] (http://en.cppreference.com/w/cpp/memory/shared_ptr/shared_ptr). –
Извините @CL. , Я не имел в виду, что это не было документировано. Я не мог найти его. Спасибо за ссылку. Во всяком случае, я не понимаю, какое определение я должен использовать, если я не могу использовать определение shared_ptr как переменную, потому что я должен передать его как двойную ссылку в функции «open». –