[PostgreSQL+SOCI+BOOST] SOCI compile error in core\exchange-traits.h with PG and SOCI on Windows
Hi. This isn’t strictly a Boost question but I’ve gotten no response to the following issue posted on the SOCI-users list. I’m posting here in the hope that someone has experience building SOCI for PostgreSQL with Boost type support on Windows. Configuration: Using SOCI 3.2.3, Boost 1.59.0, PostgreSQL 9.4 (same with 9.5b2), and Microsoft Visual Studio 2010 on Win 7 Pro 64-bit (everything but OS is 32-bit). Target is 32-bit SOCI DLL with PostgreSQL support and Boost integration (at least tuple). Ran 'soci_postgresql_test.exe' and all tests under 'SOCI PostgreSQL Tests' passed except: test 6 skipped (dynamic backend) NOTICE: table "soci_test" does not exist, skipping NOTICE: table "soci_json_test" does not exist, skipping NOTICE: table "soci_test" does not exist, skipping I can build an application that doesn't use boost::tuple without error. However, if I do use boost∷tuple, I get: c:\develop\soci-3.2.3\core\exchange-traits.h(40): error C2065: 'x_type' : undeclared identifier // ----example----------------------------------------------------- #include "stdafx.h" /* stdafx.h includes: #define _ITERATOR_DEBUG_LEVEL 0 #include "targetver.h" #include <stdio.h> #include <tchar.h> */ #include <string> #include <iostream> #include <boost/tuple/tuple.hpp> #include <boost-tuple.h> #include <soci.h> #include <soci-postgresql.h> #pragma comment(lib, "libsoci_core_3_2.lib") #pragma comment(lib, "libsoci_postgresql_3_2.lib") #pragma comment(lib, "libpq.lib") int _tmain(int argc, _TCHAR* argv[]) { soci::session sql(soci::postgresql, "host=localhost user=postgres password=XXXXX dbname=postgres port=5432"); sql << "CREATE TABLE IF NOT EXISTS t (i INTEGER, s TEXT)"; sql << "TRUNCATE TABLE t"; sql << "INSERT INTO t (i, s) VALUES (0, 'frist')"; int i; std::string s; sql << "SELECT i, s FROM t WHERE i = 0", soci::into(i), soci::into(s); std::cout << i << "\t" << s << std::endl; boost::tuple<int, std::string> r; // following line causes error C2065: 'x_type' : undeclared identifier in core\exchange-traits.h sql << "SELECT i, s FROM t WHERE i = 0", soci::into(r); std::cout << r.get<0>() << "\t" << r.get<1>() << std::endl; return(0); } //--------------------------------------------------------------------- Thanks. [cid:image003.jpg@01D13328.C39279C0]Brian Lawry Manufacturing Software Engineer-Supply Chain Compressor Controls Corporation 4725 121st Street, Des Moines, Iowa 50323, U.S.A. blawry@cccglobal.com<mailto:blawry@cccglobal.com> / www.cccglobal.com<http://www.cccglobal.com> / LinkedIn<http://www.linkedin.com/company/compressor-controls-corporation>
2015-12-10 17:57 GMT+03:00 Lawry, Brian <blawry@cccglobal.com>:
Hi.
This isn’t strictly a Boost question but I’ve gotten no response to the following
issue posted on the SOCI-users list.
Thanks.
*Brian Lawry*
*Manufacturing Software Engineer-Supply Chain*
*Compressor Controls Corporation*
4725 121st Street, Des Moines, Iowa 50323, U.S.A.
blawry@cccglobal.com / www.cccglobal.com / LinkedIn <http://www.linkedin.com/company/compressor-controls-corporation>
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
It's not exactly true. You've already been answered in SOCI mailing list http://sourceforge.net/p/soci/mailman/message/34675052/ Could you check proposed solution? -- Best Regards, Sergei Nikulov
participants (2)
-
Lawry, Brian
-
Sergei Nikulov