有人告诉我,实际上 aT*[] and a T**
和二维数组不会衰减到 T** 之间存在差异,如下所示:std::array to pointer access violation error
但是..如果它们不一样,那为什么我不能同时声明这两个函数呢?
template<typename T>
void Transpose(T** Data, std::size_t Size)
{
for (int I = 0; I < Size; ++I)
{
for (int J = 0; J < I; ++J)
{
std::swap(Data[I][J], Data[J][I]);
}
}
}
template<typename T>
void Transpose(T* Data[], std::size_t Size)
{
for (int I = 0; I < Size; ++I)
{
for (int J = 0; J < I; ++J)
{
std::swap(Data[I][J], Data[J][I]);
}
}
}
编译器说它已经声明了..有什么想法吗?