1 template <typename T> struct A {
2 };
3 
4 template <> struct A<int> {
5   struct B {
6     int f;
7   };
8 };
9 
10 template <> struct A<bool> {
11   struct B {
12     int g;
13   };
14 };
15 
16 
f()17 template <typename T> constexpr int f() { return 0; }
f()18 template <> constexpr int f<int>() { return 4; }
19