Commit ad68e9fc by Benjamin Kosnik Committed by Benjamin Kosnik

user.cfg.in: Add complex, ratio, intializer_list.

2008-07-15  Benjamin Kosnik  <bkoz@redhat.com>

	* doc/doxygen/user.cfg.in: Add complex, ratio,
	intializer_list.
	(PREDEFINED): Add _GLIBCXX_USE_C99_STDINT_TR1.
	* doc/doxygen/doxygroups.cc: Add std::chrono.
	* include/bits/unique_ptr.h (default_delete, unique_ptr): Add markup.
	* libsupc++/initializer_list (initializer_list): Same.
	* include/std/ratio: Same.
	* include/std/chrono: Same.
	* include/std/complex: Disambiguate file markup.

From-SVN: r137868
parent 28dde965
2008-07-15 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Add complex, ratio,
intializer_list.
(PREDEFINED): Add _GLIBCXX_USE_C99_STDINT_TR1.
* doc/doxygen/doxygroups.cc: Add std::chrono.
* include/bits/unique_ptr.h (default_delete, unique_ptr): Add markup.
* libsupc++/initializer_list (initializer_list): Same.
* include/std/ratio: Same.
* include/std/chrono: Same.
* include/std/complex: Disambiguate file markup.
2008-07-15 Chris Fairles <chris.fairles@gmail.com> 2008-07-15 Chris Fairles <chris.fairles@gmail.com>
* include/std/chrono: New, as per N2661. * include/std/chrono: New, as per N2661.
...@@ -81,7 +93,7 @@ ...@@ -81,7 +93,7 @@
PR libstdc++/36451 PR libstdc++/36451
* doc/xml/manual/allocator.xml: Fix links. * doc/xml/manual/allocator.xml: Fix links.
* doc/html/*: Regenerate. * doc/html/*: Regenerate.
2008-07-09 Joseph Myers <joseph@codesourcery.com> 2008-07-09 Joseph Myers <joseph@codesourcery.com>
* libsupc++/unwind-cxx.h (__is_gxx_forced_unwind_class, * libsupc++/unwind-cxx.h (__is_gxx_forced_unwind_class,
...@@ -97,7 +109,7 @@ ...@@ -97,7 +109,7 @@
PR libstdc++/36552 PR libstdc++/36552
* include/ext/pb_ds/detail/left_child_next_sibling_heap_/ * include/ext/pb_ds/detail/left_child_next_sibling_heap_/
null_metadata.hpp: Remove self-include. null_metadata.hpp: Remove self-include.
2008-07-09 Joseph Myers <joseph@codesourcery.com> 2008-07-09 Joseph Myers <joseph@codesourcery.com>
* testsuite/20_util/make_signed/requirements/typedefs-2.cc, * testsuite/20_util/make_signed/requirements/typedefs-2.cc,
......
...@@ -28,12 +28,15 @@ ...@@ -28,12 +28,15 @@
/** @namespace std::tr1::__detail /** @namespace std::tr1::__detail
* @brief Implementation details not part of the namespace std::tr1 interface. * @brief Implementation details not part of the namespace std::tr1 interface.
*/ */
/** @namespace std::regex_constants /** @namespace std::chrono
* @brief ISO C++ 0x entities sub namespace for regex. * @brief ISO C++ 0x entities sub namespace for time and date.
*/ */
/** @namespace std::placeholders /** @namespace std::placeholders
* @brief ISO C++ 0x entities sub namespace for functional. * @brief ISO C++ 0x entities sub namespace for functional.
*/ */
/** @namespace std::regex_constants
* @brief ISO C++ 0x entities sub namespace for regex.
*/
/** @namespace std::this_thread /** @namespace std::this_thread
* @brief ISO C++ 0x entities sub namespace for thread. * @brief ISO C++ 0x entities sub namespace for thread.
*/ */
......
...@@ -463,12 +463,14 @@ WARN_LOGFILE = ...@@ -463,12 +463,14 @@ WARN_LOGFILE =
INPUT = @srcdir@/libsupc++/cxxabi.h \ INPUT = @srcdir@/libsupc++/cxxabi.h \
@srcdir@/libsupc++/cxxabi-forced.h \ @srcdir@/libsupc++/cxxabi-forced.h \
@srcdir@/libsupc++/exception \ @srcdir@/libsupc++/exception \
@srcdir@/libsupc++/initializer_list \
@srcdir@/libsupc++/new \ @srcdir@/libsupc++/new \
@srcdir@/libsupc++/typeinfo \ @srcdir@/libsupc++/typeinfo \
include/algorithm \ include/algorithm \
include/array \ include/array \
include/bitset \ include/bitset \
include/chrono \ include/chrono \
include/complex \
include/condition_variable \ include/condition_variable \
include/deque \ include/deque \
include/fstream \ include/fstream \
...@@ -1168,6 +1170,7 @@ INCLUDE_FILE_PATTERNS = ...@@ -1168,6 +1170,7 @@ INCLUDE_FILE_PATTERNS =
PREDEFINED = __cplusplus \ PREDEFINED = __cplusplus \
__GTHREADS \ __GTHREADS \
__GXX_EXPERIMENTAL_CXX0X__ \
"_GLIBCXX_STD_P= " \ "_GLIBCXX_STD_P= " \
"_GLIBCXX_STD_D= " \ "_GLIBCXX_STD_D= " \
_GLIBCXX_STD=std \ _GLIBCXX_STD=std \
...@@ -1183,16 +1186,18 @@ PREDEFINED = __cplusplus \ ...@@ -1183,16 +1186,18 @@ PREDEFINED = __cplusplus \
_GLIBCXX_DEPRECATED \ _GLIBCXX_DEPRECATED \
_GLIBCXX_USE_WCHAR_T \ _GLIBCXX_USE_WCHAR_T \
_GLIBCXX_USE_LONG_LONG \ _GLIBCXX_USE_LONG_LONG \
_GLIBCXX_USE_C99_STDINT_TR1 \
__glibcxx_function_requires=// \ __glibcxx_function_requires=// \
__glibcxx_class_requires=// \ __glibcxx_class_requires=// \
__glibcxx_class_requires2=// \ __glibcxx_class_requires2=// \
__glibcxx_class_requires3=// \ __glibcxx_class_requires3=// \
__glibcxx_class_requires4=// __glibcxx_class_requires4=//
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES
# this tag can be used to specify a list of macro names that should be expanded. # then this tag can be used to specify a list of macro names that
# The macro definition that is found in the sources will be used. # should be expanded. The macro definition that is found in the
# Use the PREDEFINED tag if you want to use a different macro definition. # sources will be used. Use the PREDEFINED tag if you want to use a
# different macro definition.
EXPAND_AS_DEFINED = EXPAND_AS_DEFINED =
......
...@@ -40,13 +40,14 @@ ...@@ -40,13 +40,14 @@
#endif #endif
#include <bits/c++config.h> #include <bits/c++config.h>
#include <debug/debug.h> #include <debug/debug.h>1
#include <type_traits> #include <type_traits>
#include <utility> #include <utility>
#include <tuple> #include <tuple>
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/// Primary template, default_delete.
template<typename _Tp> template<typename _Tp>
struct default_delete struct default_delete
{ {
...@@ -66,6 +67,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -66,6 +67,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// _GLIBCXX_RESOLVE_LIB_DEFECTS // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 740 - omit specialization for array objects with a compile time length // DR 740 - omit specialization for array objects with a compile time length
/// Specialization, default_delete.
template<typename _Tp> template<typename _Tp>
struct default_delete<_Tp[]> struct default_delete<_Tp[]>
{ {
...@@ -78,6 +80,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -78,6 +80,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
} }
}; };
/// 20.6.11.2 unique_ptr for single objects.
template <typename _Tp, typename _Tp_Deleter = default_delete<_Tp> > template <typename _Tp, typename _Tp_Deleter = default_delete<_Tp> >
class unique_ptr class unique_ptr
{ {
...@@ -224,7 +227,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -224,7 +227,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
__tuple_type _M_t; __tuple_type _M_t;
}; };
// 20.6.11.3 unique_ptr for array objects with a runtime length /// 20.6.11.3 unique_ptr for array objects with a runtime length
// [unique.ptr.runtime] // [unique.ptr.runtime]
// _GLIBCXX_RESOLVE_LIB_DEFECTS // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 740 - omit specialization for array objects with a compile time length // DR 740 - omit specialization for array objects with a compile time length
......
...@@ -166,6 +166,7 @@ namespace std ...@@ -166,6 +166,7 @@ namespace std
{ return numeric_limits<_Rep>::min(); } { return numeric_limits<_Rep>::min(); }
}; };
/// duration
template<typename _Rep, typename _Period> template<typename _Rep, typename _Period>
struct duration struct duration
{ {
...@@ -430,61 +431,61 @@ namespace std ...@@ -430,61 +431,61 @@ namespace std
typedef duration<int, ratio< 60>> minutes; typedef duration<int, ratio< 60>> minutes;
typedef duration<int, ratio<3600>> hours; typedef duration<int, ratio<3600>> hours;
/// time_point
template<typename _Clock, typename _Duration> template<typename _Clock, typename _Duration>
struct time_point struct time_point
{
typedef _Clock clock;
typedef _Duration duration;
typedef typename duration::rep rep;
typedef typename duration::period period;
time_point()
: __d(duration::zero())
{ }
explicit time_point(const duration& __dur)
: __d(duration::zero() + __dur)
{ }
// conversions
template<typename _Duration2>
time_point(const time_point<clock, _Duration2>& __t)
: __d(__t.time_since_epoch())
{ }
// observer
duration
time_since_epoch() const
{ return __d; }
// arithmetic
time_point&
operator+=(const duration& __dur)
{
__d += __dur;
return *this;
}
time_point&
operator-=(const duration& __dur)
{ {
__d -= __dur; typedef _Clock clock;
return *this; typedef _Duration duration;
} typedef typename duration::rep rep;
typedef typename duration::period period;
// special values
// TODO: These should be constexprs. time_point() : __d(duration::zero())
static const time_point { }
min()
{ return time_point(duration::min()); } explicit time_point(const duration& __dur)
: __d(duration::zero() + __dur)
static const time_point { }
max()
{ return time_point(duration::max()); } // conversions
template<typename _Duration2>
private: time_point(const time_point<clock, _Duration2>& __t)
duration __d; : __d(__t.time_since_epoch())
}; { }
// observer
duration
time_since_epoch() const
{ return __d; }
// arithmetic
time_point&
operator+=(const duration& __dur)
{
__d += __dur;
return *this;
}
time_point&
operator-=(const duration& __dur)
{
__d -= __dur;
return *this;
}
// special values
// TODO: These should be constexprs.
static const time_point
min()
{ return time_point(duration::min()); }
static const time_point
max()
{ return time_point(duration::max()); }
private:
duration __d;
};
template<typename _ToDuration, typename _Clock, typename _Duration> template<typename _ToDuration, typename _Clock, typename _Duration>
inline time_point<_Clock, _ToDuration> inline time_point<_Clock, _ToDuration>
...@@ -565,6 +566,7 @@ namespace std ...@@ -565,6 +566,7 @@ namespace std
const time_point<_Clock, _Duration2>& __rhs) const time_point<_Clock, _Duration2>& __rhs)
{ return !(__lhs < __rhs); } { return !(__lhs < __rhs); }
/// system_clock
struct system_clock struct system_clock
{ {
#if defined(_GLIBCXX_USE_CLOCK_MONOTONIC) || \ #if defined(_GLIBCXX_USE_CLOCK_MONOTONIC) || \
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
// invalidate any other reasons why the executable file might be covered by // invalidate any other reasons why the executable file might be covered by
// the GNU General Public License. // the GNU General Public License.
/** @file complex /** @file include/complex
* This is a Standard C++ Library header. * This is a Standard C++ Library header.
*/ */
......
...@@ -120,7 +120,6 @@ namespace std ...@@ -120,7 +120,6 @@ namespace std
#endif #endif
} }
void void
lock() lock()
{ {
......
...@@ -165,6 +165,7 @@ namespace std ...@@ -165,6 +165,7 @@ namespace std
template<intmax_t _Num, intmax_t _Den> template<intmax_t _Num, intmax_t _Den>
const intmax_t ratio<_Num, _Den>::den; const intmax_t ratio<_Num, _Den>::den;
/// ratio_add
template<typename _R1, typename _R2> template<typename _R1, typename _R2>
struct ratio_add struct ratio_add
{ {
...@@ -180,6 +181,7 @@ namespace std ...@@ -180,6 +181,7 @@ namespace std
__safe_multiply<_R1::den, (_R2::den / __gcd)>::value> type; __safe_multiply<_R1::den, (_R2::den / __gcd)>::value> type;
}; };
/// ratio_subtract
template<typename _R1, typename _R2> template<typename _R1, typename _R2>
struct ratio_subtract struct ratio_subtract
{ {
...@@ -188,6 +190,7 @@ namespace std ...@@ -188,6 +190,7 @@ namespace std
ratio<-_R2::num, _R2::den>>::type type; ratio<-_R2::num, _R2::den>>::type type;
}; };
/// ratio_multiply
template<typename _R1, typename _R2> template<typename _R1, typename _R2>
struct ratio_multiply struct ratio_multiply
{ {
...@@ -205,6 +208,7 @@ namespace std ...@@ -205,6 +208,7 @@ namespace std
(_R2::den / __gcd1)>::value> type; (_R2::den / __gcd1)>::value> type;
}; };
/// ratio_divide
template<typename _R1, typename _R2> template<typename _R1, typename _R2>
struct ratio_divide struct ratio_divide
{ {
...@@ -215,11 +219,13 @@ namespace std ...@@ -215,11 +219,13 @@ namespace std
ratio<_R2::den, _R2::num>>::type type; ratio<_R2::den, _R2::num>>::type type;
}; };
/// ratio_equal
template<typename _R1, typename _R2> template<typename _R1, typename _R2>
struct ratio_equal struct ratio_equal
: integral_constant<bool, _R1::num == _R2::num && _R1::den == _R2::den> : integral_constant<bool, _R1::num == _R2::num && _R1::den == _R2::den>
{ }; { };
/// ratio_not_equal
template<typename _R1, typename _R2> template<typename _R1, typename _R2>
struct ratio_not_equal struct ratio_not_equal
: integral_constant<bool, !ratio_equal<_R1, _R2>::value> : integral_constant<bool, !ratio_equal<_R1, _R2>::value>
...@@ -243,21 +249,25 @@ namespace std ...@@ -243,21 +249,25 @@ namespace std
__ratio_less_simple_impl<_R1, _R2>>::type __ratio_less_simple_impl<_R1, _R2>>::type
{ }; { };
/// ratio_less
template<typename _R1, typename _R2> template<typename _R1, typename _R2>
struct ratio_less struct ratio_less
: __ratio_less_impl<_R1, _R2>::type : __ratio_less_impl<_R1, _R2>::type
{ }; { };
/// ratio_less_equal
template<typename _R1, typename _R2> template<typename _R1, typename _R2>
struct ratio_less_equal struct ratio_less_equal
: integral_constant<bool, !ratio_less<_R2, _R1>::value> : integral_constant<bool, !ratio_less<_R2, _R1>::value>
{ }; { };
/// ratio_greater
template<typename _R1, typename _R2> template<typename _R1, typename _R2>
struct ratio_greater struct ratio_greater
: integral_constant<bool, ratio_less<_R2, _R1>::value> : integral_constant<bool, ratio_less<_R2, _R1>::value>
{ }; { };
/// ratio_greater_equal
template<typename _R1, typename _R2> template<typename _R1, typename _R2>
struct ratio_greater_equal struct ratio_greater_equal
: integral_constant<bool, !ratio_less<_R1, _R2>::value> : integral_constant<bool, !ratio_less<_R1, _R2>::value>
......
...@@ -28,6 +28,10 @@ ...@@ -28,6 +28,10 @@
// invalidate any other reasons why the executable file might be covered by // invalidate any other reasons why the executable file might be covered by
// the GNU General Public License. // the GNU General Public License.
/** @file initializer_list
* This is a Standard C++ Library header.
*/
#ifndef __CXX_INITIALIZER_LIST #ifndef __CXX_INITIALIZER_LIST
#define __CXX_INITIALIZER_LIST #define __CXX_INITIALIZER_LIST
...@@ -39,6 +43,7 @@ ...@@ -39,6 +43,7 @@
namespace std namespace std
{ {
/// initializer_list
template<class _E> template<class _E>
class initializer_list class initializer_list
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment