diff options
author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-05-29 11:42:08 +0000 |
---|---|---|
committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-05-29 11:42:08 +0000 |
commit | 5b015bb17d3470ad3188557a80eb51296e989875 (patch) | |
tree | 53337bf2807c37592c5815a3102022bb86cf95c7 | |
parent | d82c8605352486009317d903db37bc496894a50c (diff) | |
download | gcc-5b015bb17d3470ad3188557a80eb51296e989875.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@136158 138bc75d-0d04-0410-961f-82ee72b054a4
-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 1c023cfe827..261d5e9473d 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 45b958f852d..b378abafcb4 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 db4b3c075d0..75474c806b5 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: |