summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3/include/std/functional
diff options
context:
space:
mode:
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2010-02-10 05:45:24 +0000
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2010-02-10 05:45:24 +0000
commitadd484259260a8422235e803190e81c59d661b92 (patch)
tree20c4f88ab26e67ce8d55f69aece783ccac97217d /libstdc++-v3/include/std/functional
parent3c94da027ef66bff3cb8e4f9b5527635f2b1c2d6 (diff)
downloadppe42-gcc-add484259260a8422235e803190e81c59d661b92.tar.gz
ppe42-gcc-add484259260a8422235e803190e81c59d661b92.zip
2010-02-09 Benjamin Kosnik <bkoz@redhat.com>
* include/std/streambuf: Adjust doxygen group markup. * include/std/functional: Same. * include/ext/vstring.h: Same. * include/ext/pb_ds/assoc_container.hpp: Same. * include/ext/stdio_filebuf.h: Same. * include/ext/stdio_sync_filebuf.h: Same. * include/bits/localefwd.h: Same. * include/bits/functional_hash.h: Same. * include/bits/locale_classes.h: Same. * include/bits/locale_facets.h: Same. * include/bits/ios_base.h: Same. * include/bits/codecvt.h: Same. * include/bits/locale_facets_nonio.h: Same. * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers. * testsuite/27_io/ios_base/cons/copy_neg.cc: Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@156644 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/std/functional')
-rw-r--r--libstdc++-v3/include/std/functional49
1 files changed, 39 insertions, 10 deletions
diff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional
index c390c3bbdcd..491e3815153 100644
--- a/libstdc++-v3/include/std/functional
+++ b/libstdc++-v3/include/std/functional
@@ -90,9 +90,6 @@ namespace std
_Has_result_type_helper<typename remove_cv<_Tp>::type>::value>
{ };
- /**
- *
- */
/// If we have found a result_type, extract it.
template<bool _Has_result_type, typename _Functor>
struct _Maybe_get_result_type
@@ -385,7 +382,11 @@ namespace std
: binary_function<const volatile _T1*, _T2, _Res>
{ };
- /// reference_wrapper
+ /**
+ * @brief Primary class template for reference_wrapper.
+ * @ingroup functors
+ * @{
+ */
template<typename _Tp>
class reference_wrapper
: public _Reference_wrapper_base<typename remove_cv<_Tp>::type>
@@ -431,28 +432,32 @@ namespace std
};
- // Denotes a reference should be taken to a variable.
+ /// Denotes a reference should be taken to a variable.
template<typename _Tp>
inline reference_wrapper<_Tp>
ref(_Tp& __t)
{ return reference_wrapper<_Tp>(__t); }
- // Denotes a const reference should be taken to a variable.
+ /// Denotes a const reference should be taken to a variable.
template<typename _Tp>
inline reference_wrapper<const _Tp>
cref(const _Tp& __t)
{ return reference_wrapper<const _Tp>(__t); }
+ /// Partial specialization.
template<typename _Tp>
inline reference_wrapper<_Tp>
ref(reference_wrapper<_Tp> __t)
{ return ref(__t.get()); }
+ /// Partial specialization.
template<typename _Tp>
inline reference_wrapper<const _Tp>
cref(reference_wrapper<_Tp> __t)
{ return cref(__t.get()); }
+ // @} group functors
+
template<typename _Tp, bool>
struct _Mem_fn_const_or_non
{
@@ -753,6 +758,7 @@ namespace std
/**
* @brief Returns a function object that forwards to the member
* pointer @a pm.
+ * @ingroup functors
*/
template<typename _Tp, typename _Class>
inline _Mem_fn<_Tp _Class::*>
@@ -765,6 +771,7 @@ namespace std
* @brief Determines if the given type _Tp is a function object
* should be treated as a subexpression when evaluating calls to
* function objects returned by bind(). [TR1 3.6.1]
+ * @ingroup binders
*/
template<typename _Tp>
struct is_bind_expression
@@ -773,6 +780,7 @@ namespace std
/**
* @brief Determines if the given type _Tp is a placeholder in a
* bind() expression and, if so, which placeholder it is. [TR1 3.6.2]
+ * @ingroup binders
*/
template<typename _Tp>
struct is_placeholder
@@ -784,6 +792,7 @@ namespace std
/** @namespace std::placeholders
* @brief ISO C++ 0x entities sub namespace for functional.
+ * @ingroup binders
*
* Define a large number of placeholders. There is no way to
* simplify this with variadic templates, because we're introducing
@@ -828,6 +837,7 @@ namespace std
/**
* Partial specialization of is_placeholder that provides the placeholder
* number for the placeholder objects defined by libstdc++.
+ * @ingroup binders
*/
template<int _Num>
struct is_placeholder<_Placeholder<_Num> >
@@ -1335,17 +1345,26 @@ namespace std
}
};
- /// Class template _Bind is always a bind expression.
+ /**
+ * @brief Class template _Bind is always a bind expression.
+ * @ingroup binders
+ */
template<typename _Signature>
struct is_bind_expression<_Bind<_Signature> >
: public true_type { };
- /// Class template _Bind_result is always a bind expression.
+ /**
+ * @brief Class template _Bind is always a bind expression.
+ * @ingroup binders
+ */
template<typename _Result, typename _Signature>
struct is_bind_expression<_Bind_result<_Result, _Signature> >
: public true_type { };
- /// bind
+ /**
+ * @brief Function template for std::bind.
+ * @ingroup binders
+ */
template<typename _Functor, typename... _ArgTypes>
inline
_Bind<typename _Maybe_wrap_member_pointer<_Functor>::type(_ArgTypes...)>
@@ -1358,6 +1377,10 @@ namespace std
std::forward<_ArgTypes>(__args)...);
}
+ /**
+ * @brief Function template for std::bind.
+ * @ingroup binders
+ */
template<typename _Result, typename _Functor, typename... _ArgTypes>
inline
_Bind_result<_Result,
@@ -1766,7 +1789,12 @@ namespace std
}
};
- /// class function
+ /**
+ * @brief Primary class template for std::function.
+ * @ingroup functors
+ *
+ * Polymorphic function wrapper.
+ */
template<typename _Res, typename... _ArgTypes>
class function<_Res(_ArgTypes...)>
: public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>,
@@ -2033,6 +2061,7 @@ namespace std
_Invoker_type _M_invoker;
};
+ // Out-of-line member definitions.
template<typename _Res, typename... _ArgTypes>
function<_Res(_ArgTypes...)>::
function(const function& __x)
OpenPOWER on IntegriCloud