这部分代码在C ++ 20中编译(使用gcc 10.1),而typename
在依赖类型之前未使用关键字std::vector<T>::iterator
。为什么要编译?
#include <vector>
template<typename T>
std::vector<T>::iterator // Why does this not require "typename" before it?
f() { return {}; }
int main() {
auto fptr = &f<int>;
}
typename
),因为(我认为...)那里一定有一个类型。可能要添加language-lawyer
标签。