4
我在寫一些函數模板來爲矩陣類重載*
運算符。我使用double
和complex<double>
類型的矩陣做了很多工作。是否可以編寫一個返回正確類型的模板函數?例如:從模板函數返回雙精度或複數<double>
template<class T, class U, class V>
matrix<V> operator*(const T a, const matrix<U> A)
{
matrix<V> B(A.size(1),A.size(2));
for(int ii = 0; ii < B.size(1); ii++)
{
for(int jj = 0; jj < B.size(2); jj++)
{
B(ii,jj) = a*A(ii,jj);
}
}
return B;
}
我想返回類型V
通過的T*U
的自然結果來確定。這可能嗎?
編輯:
,我問收到的是,這裏提供了適用的附加信息的答案的後續question。
這也許可以用C++ 11做 - 你有機會獲得這一點,或者你使用的是舊版本? – wlyles
我可以通過g ++ 4.7.3訪問C++ 11。看起來這個標準對於這個編譯器仍然是實驗性的。 @jrok的答案適用於我。對C++ 11功能的支持預計會隨着時間的推移而改進,或者是否有這些功能可能會消失? – OSE
@OSE:沒有編譯器不僅對C++ 11有實驗支持。 C++ 11支持將不會導致您的代碼被破壞。 –