c++ - dev c++ 不编译 std::function 和 __declspec(property

标签 c++

为什么不 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/

相关文章:

c++ - 在 C++ 中,编译器如何处理对模板的调用?

c++ - 如何使 boost::log::keywords::file_name 使用 UTC 时间?

c++ - CUDA-优化表面检测内核

c++ - 将属性数据推送到 trie,添加到多个键

c++ - 了解在堆栈上分配的实例的 C++ 虚拟方法

C++让我大吃一惊

c++ - 将大量数据初始化到 C++ 容器中的最佳方法?

c++ - 定义集合 C++

c++ - 在 C++ 中,如何使用 vector View 和 gsl_stats_mean 计算整数 vector 的平均值?

c++ - 我应该在 C++ 中使用构造函数还是初始化函数