https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70810
sd.foolegg at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |UNCONFIRMED
Resolution|INVALID |---
--- Comment #3 from sd.foolegg at gmail dot com ---
(In reply to Jonathan Wakely from comment #1)
> Not a bug, the parameter pack for std::function<void(Ts...)> cannot be
> deduced from the arguments, because a function pointer is not a
> std::function.
why below code can run?:
template<typename ... Ts>
struct Invoker {
void invoke(std::function<void(Ts ...)> f, Ts ... args) {
f(args ...);
}
};
Invoker<std::string, int> invoker;
invoker.invoke(foo, "a", 1); // ok
and visual studio 2015 can deduce parameter pack normally (same code).