我知道硬括号('['和']')用于识别数组, 但在寻找如何使用事件时,我偶然发现了它们的另一种用途,并想知道究竟是什么意思......
我看到的代码(link)如下所示:
// evh_native.cpp
#include <stdio.h>
[event_source(native)]
class CSource {
public:
__event void MyEvent(int nValue);
};
[event_receiver(native)]
class CReceiver {
public:
…
所以......我想知道这究竟是什么意思以及它的用途是什么?有人可以解释一下吗?
答案 0 :(得分:5)
除了数组用法和类operator[]
之外,在C ++中还有另一种用法,即lambda的捕获列表,如
int a;
auto func= [a](int i){ return i*a; }
但链接中的示例看起来像非标准(它被称为 native C ++,无论是什么)。另一个用途是属性的双括号,例如
[[noreturn]] void throw_error(std::string const&message);
答案 1 :(得分:4)
这可能是一些事情;对我来说,看起来你的情况是我名单上的最后一个:
指定数组的索引。
在lambda表达式或函数中指定捕获列表。
[]
可能会以完全脱离其初衷的方式重载。提升精神就是这样。
非标准编译器扩展。
1,2和3都可以用标准C ++实现; 4不能。
答案 2 :(得分:0)
它看起来像C ++ / CLI代码,可能是.NET的一些代码?