Hi All. I outline below code I keep writing which I'd like to replace
with a sql_get_rows template function which would use the meta-type
information bundled in the tuple declaration to automatically make as
many calls to the get<T> function based on the tuple length, and
"pack" the result of these calls into a tuple instance added to a
container (vector in this case, but if it could be generalized to any
container, all the better, although I'd be happy just with vector).
I have experience with basic template stuff, and a little less basic
stuff like CRTP, enable_if, and the like, but meta-programming is
still new to me, which is why I'm seeking advice from experts to find
out whether the below is : 1) possible, 2) would perform ok, and 3)
where I should start looking to see examples doing this particular
"tuple-enrolling" or perhaps even pseudo code outlining how one would
go about implementing this, provided answers to (1) and (2) are
positive of course. I suspect mpl and phoenix would need to be used,
from the reading I've done, but the path to follow is quite unclear to
me still. Any help in this matter would be appreciated.
Thanks, --DD
// Context: retrieving all the rows (result set) from a given SQL query.
// pseudo code of boilerplate code I keep repeating right now
struct { int id; std::string name; } Row;
void doit() {
ResultSet rset = sql_exec("select id, name from t");
std::vector<Row> rows;
while (rset.hasMoreRows()) {
Row row;
row.id = rset.get<int>(0);
row.name = rset.get