1 template<typename T>
2 class GenericContainer {
3   private:
4     T storage;
5 
6   public:
GenericContainer(T value)7     GenericContainer(T value) {
8       storage = value;
9     };
10 };
11 
12 typedef GenericContainer<int> IntContainer;
13 
14 struct Foo {
15   class Bar;
16   Bar *bar;
17 };
18