1 // PR c++/89480 2 // { dg-do compile { target c++11 } } 3 4 template <typename Foo, Foo Part> 5 struct TSelect {}; 6 7 enum What { 8 The 9 }; 10 11 template <typename Foo> 12 struct AnotherOneSelector { 13 static constexpr Foo Id = Foo::The; 14 }; 15 16 template <typename Foo, typename SelectPartType> 17 struct THelper; 18 19 template <typename Foo> 20 struct THelper<Foo, TSelect<Foo, Foo{AnotherOneSelector<Foo>::Id}>> {}; 21 22 int main() { 23 THelper<What, TSelect<What, What::The>> t; 24 } 25