template <typename _M>

class var {

typedef _M Object;

...

};


typedef var<LinkedHashMap<std::string, var<?>>> var1;

typedef var<unordered_map<std::string, var<?>>> var2;



요런식으로 쓰고 싶은데

이게 재귀적이 되니까 좀 막연하네.