• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_iterator cbegin() const;
13  
14  #include <string>
15  #include <cassert>
16  
17  #include "min_allocator.h"
18  
19  template <class S>
20  void
test(const S & s)21  test(const S& s)
22  {
23      typename S::const_iterator cb = s.cbegin();
24      if (!s.empty())
25      {
26          assert(*cb == s[0]);
27      }
28      assert(cb == s.begin());
29  }
30  
main()31  int main()
32  {
33      {
34      typedef std::string S;
35      test(S());
36      test(S("123"));
37      }
38  #if __cplusplus >= 201103L
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