template struct A { }; template <> struct A { struct B { int f; }; }; template <> struct A { struct B { int g; }; }; template constexpr int f() { return 0; } template <> constexpr int f() { return 4; }