+2009-06-23 Benjamin Kosnik <bkoz@redhat.com>
+
+ * doc/doxygen/user.cfg.in (PREDEFINED): Add _GLIBCXX_ATOMIC_BUILTINS_*.
+ (INPUT): Add future.
+ * include/std/future: Adjust markup.
+ * testsuite/30_threads/shared_future/cons/assign_neg.cc: Adjust
+ line numbers.
+ * testsuite/30_threads/unique_future/cons/assign_neg.cc: Same.
+ * testsuite/30_threads/unique_future/cons/copy_neg.cc: Same.
+ * testsuite/30_threads/promise/cons/assign_neg.cc: Same.
+ * testsuite/30_threads/promise/cons/copy_neg.cc: Same.
+
2009-06-23 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/bits/shared_ptr.h: Do not swap rvalues.
include/deque \
include/fstream \
include/functional \
+ include/future \
include/iomanip \
include/ios \
include/iosfwd \
_GLIBCXX_USE_WCHAR_T \
_GLIBCXX_USE_LONG_LONG \
_GLIBCXX_USE_C99_STDINT_TR1 \
+ _GLIBCXX_ATOMIC_BUILTINS_1 \
+ _GLIBCXX_ATOMIC_BUILTINS_2 \
+ _GLIBCXX_ATOMIC_BUILTINS_4 \
+ _GLIBCXX_ATOMIC_BUILTINS_8 \
_GLIBCXX_USE_SCHED_YIELD \
_GLIBCXX_USE_NANOSLEEP \
__glibcxx_function_requires=// \
error_code _M_code;
};
+ // Forward declarations.
+ template<typename _Result>
+ class unique_future;
+
+ template<typename _Result>
+ class shared_future;
+
+ template<typename>
+ class packaged_task;
+
+ template<typename _Result>
+ class promise;
+
// Holds the result of a future
struct _Future_result_base
{
void _M_destroy() { delete this; }
};
- /// unique_future
- template<typename _Result>
- class unique_future;
-
- /// shared_future
- template<typename _Result>
- class shared_future;
-
// common implementation for unique_future and shared_future
template<typename _Result>
class _Future_impl
_State_ptr _M_state;
};
- /// promise
- template<typename _Result>
- class promise;
-
- // primary template for unique_future
+ /// primary template for unique_future
template<typename _Result>
class unique_future : public _Future_impl<_Result>
{
unique_future(const _State_ptr& __state) : _Base_type(__state) { }
};
- // primary template for unique_future
+ /// primary template for unique_future
template<typename _Result>
class shared_future : public _Future_impl<_Result>
{
: _M_state(std::move(__uf._M_state))
{ }
- template<typename> class packaged_task; // undefined
-
- // primary template for promise
+ /// primary template for promise
template<typename _Result>
class promise
{
}
};
+ /// packaged_task
template<typename _Result, typename... _ArgTypes>
class packaged_task<_Result(_ArgTypes...)>
{