шаблоны — C ++ Visual Studio 2013 Странная ошибка, но код работает

Я пытаюсь использовать свойства __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 и все еще работает.

Почему это беспокойство? Я работаю в команде, и другие не будут рады, если появятся ошибки, и, вероятно, предположим, что код не будет работать, хотя это будет работать. Есть ли способ подавления таких ошибок? Почему это происходит?

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]