Я пытаюсь использовать свойства __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 для класса шаблона с использованием многомерного свойства. Если я удаляю один набор скобок и параметров, кажется, что ошибка исчезает, и код выполняется как ожидалось. Поскольку код сейчас, он выдает ошибку в visual studio и все еще работает.
Почему это беспокойство? Я работаю в команде, и другие не будут рады, если появятся ошибки, и, вероятно, предположим, что код не будет работать, хотя это будет работать. Есть ли способ подавления таких ошибок? Почему это происходит?
Задача ещё не решена.