我想實現一個簡單的矩陣類模板 我想實例化它像矩陣(data1,..,dataN) 基本上我想定義一個模板類,它需要2個unsigned int作爲模板參數,並使用初始化列表來推斷含權的數據的類型,現在我寫了這個簡單的開始:模板的矩陣模板
template<size_t N, size_t M>
class Matrix {
public:
template<typename ...T>
constexpr Matrix<N,M>(T ... args) noexcept
: data{std::forward<T>(args)... }
{
static_assert(sizeof...(args) <= N*M, "Insufficent element for a Matrix ");
}
const auto getData()const { return data; }
private:
template<typename T>
std::valarray<T> data ;
};
,但我得到一個錯誤..
error: data member ‘data’ cannot be a member template std::valarray data ;
所以你是什麼想一想 ?有一種方法可以通過初始化(傳遞給構造函數的參數)推導出Matrix 的類型,並沿着所有類定義使用此時間 ?
我不知道成員變量是否可以在C++ 14或更高版本中模板化,但無論如何,爲什麼'T'不是整個類的參數? – user463035818
我期望'typename T'是類的第一個(或最後一個)模板參數。 – grek40
,因爲我會用矩陣實例化這些..所以類模板參數應該是 ...我可以在其中插入T?推斷什麼? –