1//===----------------------------------------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is dual licensed under the MIT and the University of Illinois Open 6// Source Licenses. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10// <string> 11 12// const_reverse_iterator crbegin() const; 13 14#include <string> 15#include <cassert> 16 17#include "min_allocator.h" 18 19template <class S> 20void 21test(const S& s) 22{ 23 typename S::const_reverse_iterator cb = s.crbegin(); 24 if (!s.empty()) 25 { 26 assert(*cb == s.back()); 27 } 28 assert(cb == s.rbegin()); 29} 30 31int main() 32{ 33 { 34 typedef std::string S; 35 test(S()); 36 test(S("123")); 37 } 38#if TEST_STD_VER >= 11 39 { 40 typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S; 41 test(S()); 42 test(S("123")); 43 } 44#endif 45} 46