blob: d6ff8504e9dafe917440badac02f5f97eaeaedb6 [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
Marshall Clow1b921882013-12-03 00:18:10 +000017#include "test_allocator.h"
Marshall Clow061d0cc2013-11-26 20:58:02 +000018#include "min_allocator.h"
Howard Hinnantbc8d3f92010-05-11 19:42:16 +000019
20int main()
21{
Dan Albert1d4a1ed2016-05-25 22:36:09 -070022#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 }
Dan Albert1d4a1ed2016-05-25 22:36:09 -070032#if __cplusplus >= 201103L
Howard Hinnant9dcdcde2013-06-28 16:59:19 +000033 {
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 }
Dan Albert1d4a1ed2016-05-25 22:36:09 -070044#endif
45#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
Howard Hinnantbc8d3f92010-05-11 19:42:16 +000046}