C++ cli 无法读取cpp参数定义

C++ cli 无法读取cpp参数定义,c++-cli,C++ Cli,在.h文件中,有一个函数接受此参数: void (^callback)(float * arg)=NULL 在函数定义中: void func(void (^callback)(float * arg)=NULL); 我能读到的是,它接受一个函数指针,如果没有定义,它将覆盖NULL。我没有得到的部分是^in(^callback)。我只知道^是位异或运算符。 它还会在我的VS2012编译器中产生问题(与CLR有关)。所以我真的想把这部分重写成别的东西,没有按位运算符 有人有一些想法或能够解释这

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

void (^callback)(float * arg)=NULL
在函数定义中:

void func(void (^callback)(float * arg)=NULL);
我能读到的是,它接受一个函数指针,如果没有定义,它将覆盖NULL。我没有得到的部分是^in(^callback)。我只知道^是位异或运算符。 它还会在我的VS2012编译器中产生问题(与CLR有关)。所以我真的想把这部分重写成别的东西,没有按位运算符


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

如注释中所述,
^
是C++/Cli功能。所以首先你必须决定你想做纯C++还是C++ +CLI?< /P> <>你的函数的C++(非C++ +CLI)版本可以看起来像这个< /P>
void func(void (*callback)(float * arg)= nullptr)
{
    if (callback)
    {
        float c = 1.0;
        (*callback)(&c);
    }
}

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

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

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

这是来自Microsoft C++/CLI(这是一种与C++有着模糊相似之处的语言)的代码。
^
不是按位异或运算符,@MattMcNabb在C++/CLI中有类似的东西吗?首先我猜它有点像委托,但我在任何地方都找不到这种语法。我不确定你的意思,它是在C++/CLI中。查看我的评论中的链接啊,我看到了,所以使用“hat”声明是因为可以选择完全忽略传递参数。因此,“回调”的定义在NULL时被删除。所以,为了重写它,我将使用重载并生成两个函数,一个需要函数指针,另一个不需要。我走对了吗?