diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/cpp1y/constexpr-initlist1.C')
-rw-r--r-- | gcc/testsuite/g++.dg/cpp1y/constexpr-initlist1.C | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/cpp1y/constexpr-initlist1.C b/gcc/testsuite/g++.dg/cpp1y/constexpr-initlist1.C new file mode 100644 index 0000000000..bdef8a101a --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/constexpr-initlist1.C @@ -0,0 +1,22 @@ +// PR c++/64333 +// { dg-do compile { target c++14 } } +#include <initializer_list> + +constexpr int max(std::initializer_list<int> ints) +{ + int ret = *(ints.begin()); + for (int i = 0; i < ints.size(); ++i) { + if (*(ints.begin()+i) > ret) { + ret = *(ints.begin()+i); + } + } + return ret; +} + +int main() +{ + constexpr int z = max({7,6,5,4,3,2,1}); + constexpr int z2 = max({5,4,3,2,1}); + static_assert(z == 7, ""); + static_assert(z2 == 5, ""); +} |