diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2019-01-17 15:48:05 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2019-01-18 13:59:31 +0300 |
commit | 7d79d5298f56c4768a90df629b689d1bc3ebbb31 (patch) | |
tree | 668ef735fa24ac7042f150bd823bcfcebebb5a92 /odb/details/function-wrapper.ixx | |
parent | d7fffb8fbd0743e6dfcf76eb4373bfead92bffc7 (diff) |
Add function_wrapper::cast() that cleanly cast to an incompatible function type
Diffstat (limited to 'odb/details/function-wrapper.ixx')
-rw-r--r-- | odb/details/function-wrapper.ixx | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/odb/details/function-wrapper.ixx b/odb/details/function-wrapper.ixx index d73d578..9ec19ec 100644 --- a/odb/details/function-wrapper.ixx +++ b/odb/details/function-wrapper.ixx @@ -36,5 +36,15 @@ namespace odb swap (const_cast<function_wrapper<F>&> (x)); return *this; } + + template <typename F> + template <typename R> + inline R function_wrapper<F>:: + cast () const + { + union { F* f; R r; } r; + r.f = function; + return r.r; + } } } |