regex_compiler.h (__detail::__has_contiguous_iter): vector<bool> storage is not conti...
authorJonathan Wakely <jwakely.gcc@gmail.com>
Fri, 8 Nov 2013 17:33:31 +0000 (17:33 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 8 Nov 2013 17:33:31 +0000 (17:33 +0000)
* include/bits/regex_compiler.h (__detail::__has_contiguous_iter):
vector<bool> storage is not contiguous.

From-SVN: r204582

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/regex_compiler.h

index ea2e6c7..3ecd3ba 100644 (file)
@@ -32,6 +32,9 @@
        so that std::basic_string<C> and std::vector<C> iterators dispatch to
        the const C* compiler.
 
+       * include/bits/regex_compiler.h (__detail::__has_contiguous_iter):
+       vector<bool> storage is not contiguous.
+
 2013-11-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
        * include/bits/regex_automaton.h (_S_opcode_word_boundry): Rename to
index 741098f..b9f8127 100644 (file)
@@ -134,12 +134,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   template<typename _Ch, typename _Tr, typename _Alloc>
     struct __has_contiguous_iter<std::basic_string<_Ch, _Tr, _Alloc>>
-    : std::true_type
+    : std::true_type  // string<Ch> storage is contiguous
     { };
 
   template<typename _Tp, typename _Alloc>
     struct __has_contiguous_iter<std::vector<_Tp, _Alloc>>
-    : std::true_type
+    : std::true_type  // vector<Tp> storage is contiguous
+    { };
+
+  template<typename _Alloc>
+    struct __has_contiguous_iter<std::vector<bool, _Alloc>>
+    : std::false_type // vector<bool> storage is not contiguous
     { };
 
   template<typename _Tp>