summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2008-05-29 11:42:08 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2008-05-29 11:42:08 +0000
commit5b015bb17d3470ad3188557a80eb51296e989875 (patch)
tree53337bf2807c37592c5815a3102022bb86cf95c7
parentd82c8605352486009317d903db37bc496894a50c (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--libstdc++-v3/include/bits/cpp_type_traits.h16
-rw-r--r--libstdc++-v3/include/debug/bitset6
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: