0

__declspec プロパティを使用しようとしていますが、複数のインデックスを使用すると奇妙なエラーが発生します。Visual Studio で「式は完全なオブジェクト型へのポインターである必要があります」というエラーが表示されますが、コードは正常に実行されているようです。私が使用しているコードは次のとおりです。

#include "stdafx.h"

template<typename T>
class testClass
{
public:
    __declspec (property (get = GetValue, put = PutValue))
        T test[][];

    T GetValue(int x, int y)
    {
        return _internalVal[x][y];
    }

    void PutValue(int x, int y, T lValue)
    {
        _internalVal[x][y] = lValue;
    }
private:
    T _internalVal[3][3];

};


int _tmain(int argc, _TCHAR* argv[])
{

    testClass<int> tc;
    for (int i = 0; i < 3; i++){
        for (int j = 0; j < 3; j++){

            tc.test[i][j] = i * j;
        }
    }
    return 0;
}

この例では、多次元プロパティを使用するテンプレート クラスで __declspec プロパティを使用しています。括弧とパラメーターのセットを 1 つ削除すると、エラーがなくなり、コードが期待どおりに実行されるようです。コードが現在のように、Visual Studio でエラーがスローされ、引き続き実行されます。

なぜこれが懸念されるのですか?私はチームで働いており、エラーが発生した場合、他の人は満足せず、コードが機能しないと想定する可能性があります。このようなエラーを抑制する方法はありますか? なぜこうなった?

4

0 に答える 0