diff options
Diffstat (limited to 'test/std/strings/basic.string/string.access')
| -rw-r--r-- | test/std/strings/basic.string/string.access/at.pass.cpp | 31 | ||||
| -rw-r--r-- | test/std/strings/basic.string/string.access/index.pass.cpp | 4 |
2 files changed, 27 insertions, 8 deletions
diff --git a/test/std/strings/basic.string/string.access/at.pass.cpp b/test/std/strings/basic.string/string.access/at.pass.cpp index 8dc0c57cb7b4..891648930e3c 100644 --- a/test/std/strings/basic.string/string.access/at.pass.cpp +++ b/test/std/strings/basic.string/string.access/at.pass.cpp @@ -7,7 +7,6 @@ // //===----------------------------------------------------------------------===// -// XFAIL: libcpp-no-exceptions // <string> // const_reference at(size_type pos) const; @@ -19,21 +18,41 @@ #include "min_allocator.h" +#include "test_macros.h" + template <class S> void test(S s, typename S::size_type pos) { - try + const S& cs = s; + if (pos < s.size()) { - const S& cs = s; assert(s.at(pos) == s[pos]); assert(cs.at(pos) == cs[pos]); - assert(pos < cs.size()); } - catch (std::out_of_range&) +#ifndef TEST_HAS_NO_EXCEPTIONS + else { - assert(pos >= s.size()); + try + { + s.at(pos); + assert(false); + } + catch (std::out_of_range&) + { + assert(pos >= s.size()); + } + try + { + cs.at(pos); + assert(false); + } + catch (std::out_of_range&) + { + assert(pos >= s.size()); + } } +#endif } int main() diff --git a/test/std/strings/basic.string/string.access/index.pass.cpp b/test/std/strings/basic.string/string.access/index.pass.cpp index b45a399320ba..f4053dff19e5 100644 --- a/test/std/strings/basic.string/string.access/index.pass.cpp +++ b/test/std/strings/basic.string/string.access/index.pass.cpp @@ -29,7 +29,7 @@ int main() const S& cs = s; for (S::size_type i = 0; i < cs.size(); ++i) { - assert(s[i] == '0' + i); + assert(s[i] == static_cast<char>('0' + i)); assert(cs[i] == s[i]); } assert(cs[cs.size()] == '\0'); @@ -43,7 +43,7 @@ int main() const S& cs = s; for (S::size_type i = 0; i < cs.size(); ++i) { - assert(s[i] == '0' + i); + assert(s[i] == static_cast<char>('0' + i)); assert(cs[i] == s[i]); } assert(cs[cs.size()] == '\0'); |
