I believe this should be Arg &&arg, and this applies to everywhere you've added std::forward<>.