0

dev 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(...))置く:publicint 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 に答える