SOCI/soci — pull request #186 by ArnaudD-FR (2013-08-05 16:36:33+00:00)
Title: Append each member of tuple/fusion instead of adding tuple/fusion

Ok, this is the new into/use architecture I talked about in my previous PR https://github.com/SOCI/soci/pull/184. Instead of storing reference to boost fusion/tuple object, now we store reference to each member of those objects.

When you call use() or into() you will get a use_container and into_container object. Those containers are keeping reference to object you give to use/into. But, once it is added into statement_impl or ref_counted_prepare_info calling exchange API, if this is a boost fusion/tuple we add each member to intos_/uses_ variables.

To simplify task, I also create use_type_vector and into_type_vector classes (bind-values.h). Those classes implements basic stuffs to add boost fusion/tuple members.

!!!!! Warning: break compatibility with boost < 1.35 (<= 2008) !!!!!

Tested with gcc 4.7 and msvc 2008 and 2012, sqlite3 only