0

为什么不在开发 c++ 上工作std::function<int(int)> functionName__declspec(property(get = getNumber, put = putNumber)) int number

我复制了无数示例代码,它们都返回错误..

编辑:

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;
};

如果我只包括这个类,它会给我一个错误..

4

1 回答 1

4

问题

  • 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;
};
于 2013-05-17T19:20:52.757 回答