无法读取cpp参数定义

时间:2014-07-16 10:14:34

标签: c++-cli

在.h文件中有一个接受此参数的函数:

void (^callback)(float * arg)=NULL

在函数定义中:

void func(void (^callback)(float * arg)=NULL);

我能够读到的是它需要一个函数指针,如果没有定义它会覆盖NULL。我没有得到的部分是^ in(^ callback)。我只知道^作为一个按位XOR运算符。 它还会在我的VS2012编译器中产生问题(与CLR一样)。所以我真的想把这部分改写成别的东西,没有按位运算符...

有人有一些想法或能够解释这行代码吗?

1 个答案:

答案 0 :(得分:0)

如评论中所述,^是C ++ / Cli功能。所以首先你必须决定你想做纯C ++还是C ++ / Cli。

您的函数的C ++(非C ++ / Cli)版本可能如下所示

void func(void (*callback)(float * arg)= nullptr)
{
    if (callback)
    {
        float c = 1.0;
        (*callback)(&c);
    }
}

编辑:我承认我不知道原始^callback的目的是什么。因为

void func(void (^callback)(float * arg)= nullptr)
{
    // ...
}

不为我编译。如果没有float *,它仍然无法编译。