blob: 7654901b8510e8578b196bbbdf588b72a85d5b51 [file] [log] [blame]
Howard Hinnantbc8d3f92010-05-11 19:42:16 +00001//===----------------------------------------------------------------------===//
2//
Howard Hinnantf5256e12010-05-11 21:36:01 +00003// The LLVM Compiler Infrastructure
Howard Hinnantbc8d3f92010-05-11 19:42:16 +00004//
Howard Hinnantb64f8b02010-11-16 22:09:02 +00005// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
Howard Hinnantbc8d3f92010-05-11 19:42:16 +00007//
8//===----------------------------------------------------------------------===//
9
10// <string>
11
12// basic_string(initializer_list<charT> il, const Allocator& a = Allocator());
13
14#include <string>
15#include <cassert>
16
17#include "../test_allocator.h"
Howard Hinnant9dcdcde2013-06-28 16:59:19 +000018#include "../min_allocator.h"
Howard Hinnantbc8d3f92010-05-11 19:42:16 +000019
20int main()
21{
Howard Hinnante3e32912011-08-12 21:56:02 +000022#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
Howard Hinnantbc8d3f92010-05-11 19:42:16 +000023 {
24 std::string s = {'a', 'b', 'c'};
25 assert(s == "abc");
26 }
27 {
28 std::wstring s;
29 s = {L'a', L'b', L'c'};
30 assert(s == L"abc");
31 }
Howard Hinnant9dcdcde2013-06-28 16:59:19 +000032#if __cplusplus >= 201103L
33 {
34 typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
35 S s = {'a', 'b', 'c'};
36 assert(s == "abc");
37 }
38 {
39 typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, min_allocator<wchar_t>> S;
40 S s;
41 s = {L'a', L'b', L'c'};
42 assert(s == L"abc");
43 }
44#endif
Howard Hinnante3e32912011-08-12 21:56:02 +000045#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
Howard Hinnantbc8d3f92010-05-11 19:42:16 +000046}