The ones that I've used are -
- Database Template Library
- SOCI
DTL is probably the closest to an ORM you can get in C++. And even that is probably stretching it because you still have to know DB column names, do some of the bindings, etc. And getting used to how a simple SELECT statement works will drive you crazy the first few times but makes perfect since later on.
Also DTL works very nicely with STL algorithms.
I've used it with Oracle 9i and MySQL 4.x. It uses ODBC 3.0 underneath the covers. If PostgreSQL has an ODBC driver, I'm sure it would work as well.
SOCI on the other hand is actually nicer in my opinion. You do have to write the SQL yourself, but it is much more flexible in regards to binding (input and output). Also the integration with Boost.Optional is very nice.
It should be noted that true ORM (as most are used to it in .NET or Java) are not possible in C++ as it exists today because there is no way to introspect the classes at runtime. You have to write the binding code in DTL. You'll have to write the binding code in SOCI. But it is trivial code to write. SOCI requires more code, but easier to read. DTL requires less, but harder to read.
Based on your update - I think SOCI would be your best bet then. It is lower level, but you could build your own containers around it. And I believe it is built against PGSQL directly vs. ODBC