2015-03-16 19:32 GMT+03:00 Chengyu Fan <chengyu....@hotmail.com>: > Hi, > > Does anyone know how to create the shared_ptr for PGconn? I always get > compile errors ... > > Below is my code: > ----------------------- > const char * dbInfo = "xxx"; > PGconn *conn = PGconnectdb(dbInfo); > if (PGstatus(conn) != CONNECTION_OK) { > std::cout << PQerrorMessage(conn) << std::endl; > return 1; > } > > std::shared_ptr<PGconn> pConn(conn); > ----------- > > Error messages for the code above: > > *main.cpp:153:27: **note: *in instantiation of function template > specialization 'std::__1::shared_ptr<pg_conn>::shared_ptr<pg_conn, void>' > requested here > > std::shared_ptr<PGconn> pConn(rawConn); > > > */usr/local/Cellar/postgresql/9.4.1/include/libpq-fe.h:129:16: note: *forward > declaration of 'pg_conn' > > typedef struct pg_conn PGconn; > The complete example below:
#include <memory> #include <libpq-fe.h> int main(int argc, char *argv[]) { PGconn* cn = PQconnectdb(""); std::shared_ptr<PGconn> shared_cn(cn, &PQfinish); return 0; } -- // Dmitry.