Re: How to create shared_ptr for PGconn?

Поиск
Список
Период
Сортировка
От Dmitry Igrishin
Тема Re: How to create shared_ptr for PGconn?
Дата
Msg-id CAAfz9KOhwheNns+SHB0O=TPtX-Q29U243VigZEUrwMDK+36pBQ@mail.gmail.com
обсуждение исходный текст
Ответ на How to create shared_ptr for PGconn?  (Chengyu Fan <chengyu.fan@hotmail.com>)
Список pgsql-hackers


2015-03-16 19:32 GMT+03:00 Chengyu Fan <chengyu.fan@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.

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: assessing parallel-safety
Следующее
От: Tom Lane
Дата:
Сообщение: Re: assessing parallel-safety