using MethodT = RetT(ClassT::*)(ArgTs...);
MemberFnWrapper(ClassT &Instance, MethodT Method)
: Instance(Instance), Method(Method) {}
- RetT operator()(ArgTs &&... Args) const {
+ RetT operator()(ArgTs &&... Args) {
return (Instance.*Method)(std::move(Args)...);
}
private:
template <typename Func, typename HandlerT>
WrappedHandlerFn wrapHandler(HandlerT Handler, LaunchPolicy Launch) {
return
- [this, Handler, Launch](ChannelT &Channel, SequenceNumberT SeqNo) -> Error {
+ [this, Handler, Launch](ChannelT &Channel, SequenceNumberT SeqNo) mutable
+ -> Error {
// Start by deserializing the arguments.
auto Args =
std::make_shared<typename detail::HandlerTraits<HandlerT>::ArgStorage>();