【问题标题】:what is `typename...` syntax in C++ template?C ++模板中的`typename ...`语法是什么?
【发布时间】:2022-01-04 09:32:45
【问题描述】:

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

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

我想知道:

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

【问题讨论】:

  • 这是可变参数模板的语法。您可以看到有人已经添加了该标签。这是 C++11 以后的东西。

标签: c++ variadic-templates typename


【解决方案1】:

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

事实上,当您不知道会有多少模板化参数时,您可以使用Args... 解压缩函数或类模板中的多个参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多