blob: d7aed70c98ad676ca07da531536b2a4e308d4df8 [file] [log] [blame]
Dan Albert287553d2017-02-16 10:47:51 -08001//===----------------------------------------------------------------------===//
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// <array>
11
12// T *data();
13
14#include <array>
15#include <cassert>
16
17// std::array is explicitly allowed to be initialized with A a = { init-list };.
18// Disable the missing braces warning for this reason.
19#include "disable_missing_braces_warning.h"
20
21int main()
22{
23 {
24 typedef double T;
25 typedef std::array<T, 3> C;
26 C c = {1, 2, 3.5};
27 T* p = c.data();
28 assert(p[0] == 1);
29 assert(p[1] == 2);
30 assert(p[2] == 3.5);
31 }
32 {
33 typedef double T;
34 typedef std::array<T, 0> C;
35 C c = {};
36 T* p = c.data();
37 (void)p; // to placate scan-build
38 }
39}