template<class R, class. ArgTypes> void swap(function<R(ArgTypes..)>& f1, function<R(ArgTypes..)>& f2) noexcept;