【问题标题】:What <void(void)> means in template arguments<void(void)> 在模板参数中的含义
【发布时间】:2012-12-12 14:52:47
【问题描述】:

我在我正在工作的项目中找到了这段代码:

template<typename T>
class SomeClass
{
};
typedef SomeClass<void(void)> SomeType;

&lt;void(void)&gt; 构造是什么意思?你能用一个简单的例子解释一下如何使用这样的结构吗?

【问题讨论】:

    标签: c++ templates


    【解决方案1】:

    表示类型参数是不带参数,不返回值的函数类型(注意,不是函数指针,而是函数类型)。

    你甚至可以这样定义函数参数:

    void f (void(void));
    

    这将在传递时衰减为函数指针(就像数组参数衰减为指针一样)。

    【讨论】:

    • 你知道一些关于这个功能的文章吗?我找不到任何好的参考资料。谢谢!
    • 嗯,SO 上有一个很好的问题和答案。不过,我找不到其他任何东西,抱歉。
    • 谢谢,我找到了 标头并在代码中尝试了这个作为一个很好的参考:) 我开始理解这个概念了。
    【解决方案2】:

    T 这是一种不返回任何参数且不接受任何参数的函数。

    【讨论】:

      猜你喜欢
      • 2012-11-02
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      • 2021-07-08
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多