+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>
* include/std/chrono: New, as per N2661.
PR libstdc++/36451
* doc/xml/manual/allocator.xml: Fix links.
* doc/html/*: Regenerate.
-
+
2008-07-09 Joseph Myers <joseph@codesourcery.com>
* libsupc++/unwind-cxx.h (__is_gxx_forced_unwind_class,
PR libstdc++/36552
* include/ext/pb_ds/detail/left_child_next_sibling_heap_/
null_metadata.hpp: Remove self-include.
-
+
2008-07-09 Joseph Myers <joseph@codesourcery.com>
* testsuite/20_util/make_signed/requirements/typedefs-2.cc,
/** @namespace std::tr1::__detail
* @brief Implementation details not part of the namespace std::tr1 interface.
*/
-/** @namespace std::regex_constants
- * @brief ISO C++ 0x entities sub namespace for regex.
+/** @namespace std::chrono
+ * @brief ISO C++ 0x entities sub namespace for time and date.
*/
/** @namespace std::placeholders
* @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
* @brief ISO C++ 0x entities sub namespace for thread.
*/
INPUT = @srcdir@/libsupc++/cxxabi.h \
@srcdir@/libsupc++/cxxabi-forced.h \
@srcdir@/libsupc++/exception \
+ @srcdir@/libsupc++/initializer_list \
@srcdir@/libsupc++/new \
@srcdir@/libsupc++/typeinfo \
include/algorithm \
include/array \
include/bitset \
include/chrono \
+ include/complex \
include/condition_variable \
include/deque \
include/fstream \
PREDEFINED = __cplusplus \
__GTHREADS \
+ __GXX_EXPERIMENTAL_CXX0X__ \
"_GLIBCXX_STD_P= " \
"_GLIBCXX_STD_D= " \
_GLIBCXX_STD=std \
_GLIBCXX_DEPRECATED \
_GLIBCXX_USE_WCHAR_T \
_GLIBCXX_USE_LONG_LONG \
+ _GLIBCXX_USE_C99_STDINT_TR1 \
__glibcxx_function_requires=// \
__glibcxx_class_requires=// \
__glibcxx_class_requires2=// \
__glibcxx_class_requires3=// \
__glibcxx_class_requires4=//
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES
+# then this tag can be used to specify a list of macro names that
+# should be expanded. The macro definition that is found in the
+# sources will be used. Use the PREDEFINED tag if you want to use a
+# different macro definition.
EXPAND_AS_DEFINED =
#endif
#include <bits/c++config.h>
-#include <debug/debug.h>
+#include <debug/debug.h>1
#include <type_traits>
#include <utility>
#include <tuple>
_GLIBCXX_BEGIN_NAMESPACE(std)
+ /// Primary template, default_delete.
template<typename _Tp>
struct default_delete
{
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 740 - omit specialization for array objects with a compile time length
+ /// Specialization, default_delete.
template<typename _Tp>
struct default_delete<_Tp[]>
{
}
};
+ /// 20.6.11.2 unique_ptr for single objects.
template <typename _Tp, typename _Tp_Deleter = default_delete<_Tp> >
class unique_ptr
{
__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]
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 740 - omit specialization for array objects with a compile time length
{ return numeric_limits<_Rep>::min(); }
};
+ /// duration
template<typename _Rep, typename _Period>
struct duration
{
typedef duration<int, ratio< 60>> minutes;
typedef duration<int, ratio<3600>> hours;
+ /// time_point
template<typename _Clock, typename _Duration>
- 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)
+ struct time_point
{
- __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;
- };
+ 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;
+ 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>
inline time_point<_Clock, _ToDuration>
const time_point<_Clock, _Duration2>& __rhs)
{ return !(__lhs < __rhs); }
+ /// system_clock
struct system_clock
{
#if defined(_GLIBCXX_USE_CLOCK_MONOTONIC) || \
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
-/** @file complex
+/** @file include/complex
* This is a Standard C++ Library header.
*/
template<intmax_t _Num, intmax_t _Den>
const intmax_t ratio<_Num, _Den>::den;
+ /// ratio_add
template<typename _R1, typename _R2>
struct ratio_add
{
__safe_multiply<_R1::den, (_R2::den / __gcd)>::value> type;
};
+ /// ratio_subtract
template<typename _R1, typename _R2>
struct ratio_subtract
{
ratio<-_R2::num, _R2::den>>::type type;
};
+ /// ratio_multiply
template<typename _R1, typename _R2>
struct ratio_multiply
{
(_R2::den / __gcd1)>::value> type;
};
+ /// ratio_divide
template<typename _R1, typename _R2>
struct ratio_divide
{
ratio<_R2::den, _R2::num>>::type type;
};
+ /// ratio_equal
template<typename _R1, typename _R2>
struct ratio_equal
: integral_constant<bool, _R1::num == _R2::num && _R1::den == _R2::den>
{ };
+ /// ratio_not_equal
template<typename _R1, typename _R2>
struct ratio_not_equal
: integral_constant<bool, !ratio_equal<_R1, _R2>::value>
__ratio_less_simple_impl<_R1, _R2>>::type
{ };
+ /// ratio_less
template<typename _R1, typename _R2>
struct ratio_less
: __ratio_less_impl<_R1, _R2>::type
{ };
+ /// ratio_less_equal
template<typename _R1, typename _R2>
struct ratio_less_equal
: integral_constant<bool, !ratio_less<_R2, _R1>::value>
{ };
+ /// ratio_greater
template<typename _R1, typename _R2>
struct ratio_greater
: integral_constant<bool, ratio_less<_R2, _R1>::value>
{ };
+ /// ratio_greater_equal
template<typename _R1, typename _R2>
struct ratio_greater_equal
: integral_constant<bool, !ratio_less<_R1, _R2>::value>
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
+/** @file initializer_list
+ * This is a Standard C++ Library header.
+ */
+
#ifndef __CXX_INITIALIZER_LIST
#define __CXX_INITIALIZER_LIST
namespace std
{
+ /// initializer_list
template<class _E>
class initializer_list
{