使用gcc 10.1编译的这段代码在C++20中编译通过,而没有在依赖类型std::vector<T>::iterator
前使用typename
关键字。为什么会编译通过?
#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
标签。 - Eljay