+ stderr_tracer doesn't trace statement preparation [2.4.0] If a statement is invalid, then it will fail during preparation. However, currently, there is no way to see that statement since stderr_tracer doesn't trace this event. Options: * trace preparation by default - too much info * allow changing behavior at runtime - not thread safe * support via bool flag and make user instantiate - burdensome * support via bool flag and instantiate stderr_full_tracer - code bloat but seems the best option + C++11 support is not trully header only [c++11] Added a new class details::function_wrapper, which can be used similarly to std::function. In particular, C++11 code can construct a function_wrapper from a lambda, or a std::function, or another function_wrapper. But it differs from std::function in this respect: C++98 code can declare and define function_wrapper objects. Now all builds (98 or 11) of libodb keep their callbacks in function_wrappers. C++11 user code can register std::functions or lambdas as callbacks, and the glue that turns those into function_wrappers for libodb is header-only. This technique is currently used for data migrations and query factories.