diff options
-rw-r--r-- | libpqpp/pq-column.h | 11 | ||||
-rw-r--r-- | libpqpp/pq-helpers.h | 14 |
2 files changed, 16 insertions, 9 deletions
diff --git a/libpqpp/pq-column.h b/libpqpp/pq-column.h index d3400bf..6bf2669 100644 --- a/libpqpp/pq-column.h +++ b/libpqpp/pq-column.h @@ -1,6 +1,7 @@ #ifndef PG_COLUMN_H #define PG_COLUMN_H +#include "pq-helpers.h" #include <column.h> #include <cstring> #include <libpq-fe.h> @@ -32,15 +33,7 @@ namespace PQ { const Oid oid; // Buffer for PQunescapeBytea - struct pq_deleter { - void - operator()(unsigned char * p) - { - PQfreemem(p); - } - }; - - using BufPtr = std::unique_ptr<unsigned char, pq_deleter>; + using BufPtr = std::unique_ptr<unsigned char, pq_deleter<PQfreemem>>; mutable BufPtr buf; }; } diff --git a/libpqpp/pq-helpers.h b/libpqpp/pq-helpers.h new file mode 100644 index 0000000..76e5057 --- /dev/null +++ b/libpqpp/pq-helpers.h @@ -0,0 +1,14 @@ +#ifndef PQ_HELPERS_H +#define PQ_HELPERS_H + +namespace PQ { + template<auto func> struct pq_deleter { + void + operator()(auto p) const + { + func(p); + } + }; +} + +#endif |