Subject: [Boost-bugs] [Boost C++ Libraries] #13114: Multiple signatures for function
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2017-07-10 18:09:48
#13114: Multiple signatures for function
------------------------------+----------------------------
Reporter: stinkingmadgod@⦠| Owner: Douglas Gregor
Type: Feature Requests | Status: new
Milestone: To Be Determined | Component: function
Version: Boost 1.63.0 | Severity: Not Applicable
Keywords: |
------------------------------+----------------------------
I am not familiar with boost, just wanted to suggest the possibility of
having `function` take multiple signatures
{{{#!c++
function<void (int), int (double)> f;
}}}
This is compatible with `std::function`, but unknown feasibility for
`boost::function` in its current form.
The key idea is to recursively implement `operator()` from the argument
list
{{{#!c++
template<typename Ret, typename... Args, typename... Fns>
struct erasure_base<Ret (Args...), Fns...> : erasure_base<Fns...>
{
virtual Ret operator()(Args&&...) = 0;
using erasure_base<Fns...>::operator();
};
}}}
Attached file is a proof-of-concept implementation of such functionality.
-- Ticket URL: <https://svn.boost.org/trac10/boost/ticket/13114> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-07-10 18:14:07 UTC