Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/cpp1y/constexpr-89336-1.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
line wrap: on
line source
// PR c++/89336 // { dg-do compile { target c++14 } } template <typename T, int N> struct A { T a[N]; constexpr T &operator[] (int x) { return a[x]; } constexpr const T &operator[] (int x) const { return a[x]; } }; constexpr A<int, 16> foo () { A<int, 16> r{}; for (int i = 0; i < 6; ++i) r[i + 8] = r[i] = i + 1; return r; } constexpr auto x = foo (); static_assert (x[0] == 1, ""); static_assert (x[1] == 2, ""); static_assert (x[2] == 3, ""); static_assert (x[3] == 4, ""); static_assert (x[4] == 5, ""); static_assert (x[5] == 6, ""); static_assert (x[6] == 0, ""); static_assert (x[7] == 0, ""); static_assert (x[8] == 1, ""); static_assert (x[9] == 2, ""); static_assert (x[10] == 3, ""); static_assert (x[11] == 4, ""); static_assert (x[12] == 5, ""); static_assert (x[13] == 6, ""); static_assert (x[14] == 0, ""); static_assert (x[15] == 0, "");