diff options
-rw-r--r-- | libstdc++-v3/ChangeLog | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/cpp_type_traits.h | 16 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/bitset | 6 |
3 files changed, 30 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 1c023cf..261d5e9 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2008-05-29 Paolo Carlini <paolo.carlini@oracle.com> + + * include/debug/bitset (bitset(const char*)): Implement DR 778 + in debug-mode too. + + * include/bits/cpp_type_traits.h (__is_integer): In C++0x mode + deal with char16_t and char32_t. + 2008-05-26 Paolo Carlini <paolo.carlini@oracle.com> * include/c_global/cmath (pow(float, int), pow(double, int), diff --git a/libstdc++-v3/include/bits/cpp_type_traits.h b/libstdc++-v3/include/bits/cpp_type_traits.h index 45b958f..b378aba 100644 --- a/libstdc++-v3/include/bits/cpp_type_traits.h +++ b/libstdc++-v3/include/bits/cpp_type_traits.h @@ -180,6 +180,22 @@ _GLIBCXX_BEGIN_NAMESPACE(std) }; # endif +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<> + struct __is_integer<char16_t> + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer<char32_t> + { + enum { __value = 1 }; + typedef __true_type __type; + }; +#endif + template<> struct __is_integer<short> { diff --git a/libstdc++-v3/include/debug/bitset b/libstdc++-v3/include/debug/bitset index db4b3c0..75474c8 100644 --- a/libstdc++-v3/include/debug/bitset +++ b/libstdc++-v3/include/debug/bitset @@ -134,6 +134,12 @@ namespace __debug __n = (std::basic_string<_CharT,_Traits,_Allocator>::npos)) : _Base(__str, __pos, __n) { } + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 778. std::bitset does not have any constructor taking a string literal + explicit + bitset(const char* __s) + : _Base(__s) { } + bitset(const _Base& __x) : _Base(__x), _Safe_base() { } // 23.3.5.2 bitset operations: |