클래스 정의에서 템플릿 클래스 ctor의 인라인 정의를하려고합니다 (내부에서 할 수 있지만 헤더 파일에서 외부로 수행하는 것이 더 좋습니다). 그러나 MSVC는 Matrix
에 ctor 정의에 템플릿 인수 목록이 필요하다고 말하고 있습니다 ... 클래스 내부 함수를 정의하여이 문제를 쉽게 해결할 수 있습니다 (여전히 인라인 됨). 심미적 인 이유. 이 문제를 해결할 방법이 있습니까?템플릿 클래스 정의에서 인라인 함수를 정의합니다.
// .hpp
#pragma once
template <typename T, size_t rows, size_t cols>
class Matrix {
private:
constexpr size_t m_size = rows * cols;
std::array<T, m_size> m_arr;
public:
__forceinline Matrix();
};
Matrix::Matrix() : m_arr() { // this gives errors
// do ctor stuff
}