| 20 | typename std::remove_reference<TArg2>::type arg2; |
| 21 | typename std::remove_reference<TArg3>::type arg3; |
| 22 | ArgWrapper(ArgWrapper const& o) : arg1(o.arg1), arg2(o.arg2), arg3(o.arg3) { } |
| 23 | ArgWrapper(ArgWrapper&& o) : arg1(std::move(o.arg1)), arg2(std::move(o.arg2)), arg3(std::move(o.arg3)) { } |
| 24 | template<typename T, typename U, typename V> |
| 25 | ArgWrapper(T&& a1, U&& a2, V&& a3) : arg1(std::forward<T>(a1)), arg2(std::forward<U>(a2)), arg3(std::forward<V>(a3)) { } |