summaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-08 17:33:31 +0000
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-08 17:33:31 +0000
commitec8b8d379fffbf315761c3562ae3d938ccd5c998 (patch)
treed5a65ec6890971962f014cb635311750420620e0 /libstdc++-v3
parent6d1fdbf9b759710b1481615875f7989f5513d265 (diff)
downloadgcc-ec8b8d379fffbf315761c3562ae3d938ccd5c998.tar.gz
* include/bits/regex_compiler.h (__detail::__has_contiguous_iter):
vector<bool> storage is not contiguous. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204582 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog3
-rw-r--r--libstdc++-v3/include/bits/regex_compiler.h9
2 files changed, 10 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index ea2e6c7eee9..3ecd3ba6500 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -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
diff --git a/libstdc++-v3/include/bits/regex_compiler.h b/libstdc++-v3/include/bits/regex_compiler.h
index 741098f8c64..b9f81272bb9 100644
--- a/libstdc++-v3/include/bits/regex_compiler.h
+++ b/libstdc++-v3/include/bits/regex_compiler.h
@@ -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>