Closed
Description
Hello,
Thank you for this great sqlite wrapper! It's very convenient.
While using the wrapper is delightful, a problem about eliminating similar code occurs.
The functor:
struct ItemResultHandler {
explicit ItemResultHandler(QVariantMap& map_) : map(map_) {}
void operator() ( int id, std::string name, double price, int qty ) {
map.insert("id", id);
map.insert("name", QString::fromStdString(name));
map.insert("price", price);
map.insert("qty", qty);
}
QVariantMap& map;
};
The code:
QVariantMap getItemById(int id) {
QVariantMap map;
database db(dbfile);
db << "select id,name,price,qty from items where id=?"
<< id
>> ItemResultHandler(map);
return map;
}
It has compiling errors:
../../myapp/src/utility/function_traits.h:12: error: type 'void (ItemResultHandler::*)(std::__1::basic_string<char>, std::__1::basic_string<char>, int, int)' cannot be used prior to '::' because it has no members
decltype(&Function::operator())
^
../../myapp/src/sqlite_modern_cpp.h:218: error: incomplete definition of type 'sqlite::utility::function_traits<ItemResultHandler>'
binder<traits::arity>::run(*this, func);
~~~~~~^~
I have posted a question in SO. Could you please have a look at it? Thank you in advance.
http://stackoverflow.com/questions/30387896/how-to-eliminate-multiple-similar-sql-queries-with-one-resultset-hander
Metadata
Metadata
Assignees
Labels
No labels