C++ 模板中的“typename...”语法是什么?

Don*_*aka 3 c++ typename variadic-templates

刚刚在 Program(C++) 文件中找到了这段代码:

template <typename blah, typename... Args>
const <some-type> bof(<some-parameters>, Args&&... args) const
{
    return breck(std::forward<Args>(args)...);
}
Run Code Online (Sandbox Code Playgroud)

我想知道:

  1. 后面的三个点是什么typename?
  2. 直观上看起来我们可以通过这种方式传递多个参数?正在寻找一些官方术语/参考资料?

小智 8

它称为参数包,您可以在这里阅读更多信息:https ://en.cppreference.com/w/cpp/language/parameter_pack

事实上,Args...当您提前不知道将有多少模板化参数时,您可以使用它来解包函数或类模板中的多个参数。