Added support for std::tuple to Data/Typehandler.h.

This commit is contained in:
Friedrich Wilckens
2017-01-16 17:49:25 -08:00
parent 28de783c96
commit cc09e53b6a
3 changed files with 157 additions and 1 deletions

View File

@@ -38,6 +38,10 @@
#include <iomanip>
#include <set>
#if __cplusplus >= 201103L
#include <tuple>
#endif
using namespace Poco::Data::Keywords;
@@ -1400,6 +1404,22 @@ void DataTest::testExternalBindingAndExtraction()
}
#if __cplusplus >= 201103L
void DataTest::testStdTuple()
{
using Row = std::tuple<std::string, std::string, int>;
Session sess(SessionFactory::instance().create("test", "cs"));
Row person = std::make_tuple(std::string("Scott"), std::string("Washington, DC"), 42);
sess << "INSERT INTO Person(name, address, age) VALUES (?, ?, ?)", use(person), now;
std::vector<Row> rows;
sess << "SELECT name, address, age FROM Person", into(rows) , now;
}
#endif // __cplusplus >= 201103L
void DataTest::setUp()
{
}
@@ -1430,7 +1450,11 @@ CppUnit::Test* DataTest::suite()
CppUnit_addTest(pSuite, DataTest, testSimpleRowFormatter);
CppUnit_addTest(pSuite, DataTest, testJSONRowFormatter);
CppUnit_addTest(pSuite, DataTest, testDateAndTime);
CppUnit_addTest(pSuite, DataTest, testExternalBindingAndExtraction);
CppUnit_addTest(pSuite, DataTest, testExternalBindingAndExtraction);
#if __cplusplus >= 201103L
CppUnit_addTest(pSuite, DataTest, testStdTuple);
#endif
return pSuite;
}