C++ 模板中的 `typename...` 语法是什么?
what is `typename...` syntax in C++ template?
刚在程序(C++)文件中找到这段代码:
template <typename blah, typename... Args>
const <some-type> bof(<some-parameters>, Args&&... args) const
{
return breck(std::forward<Args>(args)...);
}
我在想:
typename
后面的三个点是什么?
- 直观上看起来我们可以通过这种方式传递多个参数?正在寻找官方 term/reference 吗?
它被称为参数包,您可以在这里阅读更多内容:https://en.cppreference.com/w/cpp/language/parameter_pack
事实上,当您事先不知道会有多少模板化参数时,您可以使用 Args...
来解压函数或 class 模板中的多个参数。
刚在程序(C++)文件中找到这段代码:
template <typename blah, typename... Args>
const <some-type> bof(<some-parameters>, Args&&... args) const
{
return breck(std::forward<Args>(args)...);
}
我在想:
typename
后面的三个点是什么?- 直观上看起来我们可以通过这种方式传递多个参数?正在寻找官方 term/reference 吗?
它被称为参数包,您可以在这里阅读更多内容:https://en.cppreference.com/w/cpp/language/parameter_pack
事实上,当您事先不知道会有多少模板化参数时,您可以使用 Args...
来解压函数或 class 模板中的多个参数。