Başka bir şablon sınıfından bir şablon sınıfının şablon üyesi işlevine erişmeye çalışırken derleyici hataları alıyorum. getSubmatrix
için bir işlev çağrısı derleyici uyarıları, "ifade sonucu kullanılmayan", (0, 0)
parametreleriyle sonuçlanır, nihayet derleyici hatasıyla başarısız olur "statik olmayan üye işlevine başvurulmalıdır".Başka bir şablon sınıfından bir şablon sınıfının şablon üyesi işlevi çağrılmıyor
matris sınıfı:
template <std::size_t m, std::size_t n, typename T, std::size_t rowPadding = 0>
class Matrix
{
public:
...
template <std::size_t p, std::size_t q>
Matrix<p, q, T, n - q>& getSubmatrix(std::size_t column, std::size_t row)
{
...
}
};
dönüşümü sınıfı: Matrix<4, 4, float>
yerine Matrix<4, 4, T>
için matris türünü değiştirerek geçerli derleme neden olacağını
template <typename T>
class Transform
{
public:
...
Matrix<4, 4, T> matrix() const
{
...
Matrix<4, 4, T> result;
result.getSubmatrix<3, 3>(0, 0) = Matrix<3, 3, T>();
...
}
};
Not. Derleyici clang 4.0 ve dil sürümü C++ 11'dir.
Bu giriş için çok teşekkür ederim, bu gerçekten Clang hata mesajından çıkarılamayacak kadar zordu. –