PR c++/85765 - SFINAE and non-type default template arg.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / constexpr-fwctor1.C
blobd25c9c7c6258fba6090b54ac6693bf27b183b83c
1 // PR c++/66450
2 // { dg-do compile { target c++11 } }
4 struct foo {
5   constexpr foo(int a);
6   constexpr foo(int a, int b, int c): a{a}, b{b}, c{c} {}
8   int a, b, c;
9 };
11 constexpr foo make_foo(int a) { return foo{a, a+1, a+2}; }
12 constexpr foo::foo(int a): foo{make_foo(a)} {}
14 int main() {
15   constexpr const foo f{3};
16   static_assert(f.a == 3, "");
17   static_assert(f.b == 4, "");
18   static_assert(f.c == 5, "");