Provide names for template and function parameters in forward declarations.  The purpose is to aid automated documentation tools.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@133008 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/future b/include/future
index 90eb6e4..e39ae4c 100644
--- a/include/future
+++ b/include/future
@@ -967,9 +967,8 @@
     base::__on_zero_shared();
 }
 
-template <class> class promise;
-template <class> class shared_future;
-template <class> class atomic_future;
+template <class _R> class promise;
+template <class _R> class shared_future;
 
 // future
 
@@ -1000,7 +999,6 @@
 
     template <class> friend class promise;
     template <class> friend class shared_future;
-    template <class> friend class atomic_future;
 
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
     template <class _R1, class _F>
@@ -1103,7 +1101,6 @@
 
     template <class> friend class promise;
     template <class> friend class shared_future;
-    template <class> friend class atomic_future;
 
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
     template <class _R1, class _F>
@@ -1201,7 +1198,6 @@
 
     template <class> friend class promise;
     template <class> friend class shared_future;
-    template <class> friend class atomic_future;
 
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
     template <class _R1, class _F>
@@ -1273,7 +1269,7 @@
 
 // promise<R>
 
-template <class> class packaged_task;
+template <class _Callable> class packaged_task;
 
 template <class _R>
 class _LIBCPP_VISIBLE promise
@@ -1728,7 +1724,7 @@
     return __invoke(__f_.first(), _STD::forward<_ArgTypes>(__arg)...);
 }
 
-template <class> class __packaged_task_function;
+template <class _Callable> class __packaged_task_function;
 
 template<class _R, class ..._ArgTypes>
 class __packaged_task_function<_R(_ArgTypes...)>