1 struct Outer { 2 Outer() {} 3 4 template <class T> 5 struct Inner {}; 6 }; 7 8 namespace NS { 9 namespace { 10 template <typename T> struct Struct {}; 11 template <typename T> struct Union {}; 12 } // namespace 13 } // namespace NS 14 15 int main() { 16 Outer::Inner<int> oi; 17 NS::Struct<int> ns_struct; 18 NS::Union<int> ns_union; 19 } 20