에서
*
연산자에 과부하를 걸기 위해 몇 가지 함수 템플릿을 작성했습니다. 나는
double
과
complex<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;
}
나는 T*U
의 자연적인 결과에 의해 결정되는 반환 형식 V
을하고 싶습니다. 이것이 가능한가?
편집 : 나는 여기에 해당하는 추가 정보를 제공 답변을 받았다 물었다
속행 question.
이 -이에 액세스 할, 또는 이전 버전을 사용을 ? – wlyles
g ++ 4.7.3을 통해 C++ 11에 액세스 할 수 있습니다. 이 표준은이 컴파일러에서 아직 시험 적으로 사용되고있는 것으로 보입니다. @jrok의 대답은 저에게 효과적입니다. C++ 11 기능에 대한 지원이 시간이 지남에 따라 향상 될 것으로 기대되거나 이러한 기능 중 일부가 사라질 위험이 있습니까? – OSE
@OSE : C++ 11을 실험적으로 지원할뿐만 아니라 컴파일러도 없습니다. 코드를 깨뜨릴 수있는 C++ 11 지원에는 변경 사항이 없습니다. –