为什么不 std::function<int(int)> functionName
和 __declspec(property(get = getNumber, put = putNumber)) int number
在开发 C++ 上工作?
我复制了无数示例代码,它们都返回错误..
编辑:
class Class {
private:
int _number;
int getNumber() {
return _number;
}
void putNumber(int number) {
_number = number;
}
public:
__declspec(property(get = getNumber, put = putNumber)) int number;
std::function<int(int)> functionName;
};
如果我只包括这个类,它会给我一个错误..
最佳答案
问题
std::function
是 C++11 的新功能,您的 Dev-C++ 旁边的编译器版本似乎已过时。__declspec(property(...))
是 Microsoft 特定关键字,仅对 MSVC++ 编译器有意义。
解决方案
更新编译器以支持 std::function
。删除 __declspec(property(...))
并将 public
放在 int getNumber()
之前:
class Class {
private:
int _number;
public:
int getNumber() {
return _number;
}
void putNumber(int number) {
_number = number;
}
std::function<int(int)> functionName;
};
关于c++ - dev c++ 不编译 std::function 和 __declspec(property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16616304/