【问题标题】:How to pass a generic argument to a function pointer?如何将泛型参数传递给函数指针?
【发布时间】:2014-03-24 13:31:19
【问题描述】:

我正在尝试将一个函数指针传递给另一个带有 T 类型参数的函数。

像这样:

void preorder ( void ( *functptr ) (T&) ) // preorder traversal of tree
{
    preorder(root, functptr(T));

}

我知道我需要将一个实际对象传递给该函数,但它被传递给另一个私有函数,该函数实际上知道它将使用什么函数,我只需要这个公共方法作为两者之间的网关。

【问题讨论】:

  • 什么是通用的?您的代码调用您将其地址作为参数传递给preorder(funcptr) 的函数。此函数不返回值 (void)。如果您想将 something 传递给 preorder(root,funcptr),您必须更改 funcptr 的返回值:void* (*funcptr)(T&))
  • 你为什么把它标记为C?

标签: c++ templates tree function-pointers


【解决方案1】:

试试

template <typename T>
void preorder ( void ( *functptr ) (T&) )
{
    preorder(root, functptr);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 2012-04-15
    相关资源
    最近更新 更多