在看c++ primer的时候见到了一下这种用法:
typedef typename std::vector<int>::size_type size_type;
觉得这里面的typename特别令人费解。最后找到了下面这篇问题,感觉写的很清楚:
http://feihu.me/blog/2014/the-origin-and-usage-of-typename/
具体细节文章里面都写到了。简单说来,以上的语句效力等同于:
typedef std::vector<int>::size_type size_type;
不过文章里面关于“限定名”"name"这些词汇定义依然有点模糊,自己理解好像是指类型而非变量名称。