namespace ns { | |
template <typename T> struct Foo { | |
static T value; | |
}; | |
template <class T> T Foo<T>::value = 0; | |
template <typename T> using Bar = Foo<T>; | |
using FooInt = Foo<int>; | |
using FooDouble = Foo<double>; | |
} // namespace ns | |
ns::Foo<double> a; | |
ns::Foo<int> b; | |
ns::Bar<double> c; | |
ns::Bar<int> d; | |
ns::FooInt e; | |
ns::FooDouble f; | |
int main() { | |
// Set breakpoint here | |
return (int)a.value + b.value + (int)c.value + d.value + e.value + | |
(int)f.value; | |
} |