我有一個課程,我打算使用與類型float
或double
。據我所知,沒有辦法限制模板選項,所以也許我可能會在這裏做一些危險的事情?C++如何從1模板類投射到另一個模板類?
template<class T>
class A
{
A(T arg) { _data = arg; }
T _data;
}
typedef A<float> A_f;
typedef A<double> A_d;
我該怎麼做?
int main()
{
A_f f(3.1415);
A_d d(3.1415);
f = (A_f)d;
}
IE:將包含double類型數據的類轉換爲包含float類型數據的類。
編輯:這似乎並沒有在任何地方去,所以我想這個玩弄,但很明顯,我不知道在這裏做什麼,因此不會編譯...
template<class T>
class A
{
friend // Intention is for T to be double here
A<float> operator A<float>(const A<T> input);
}
A<float> operator A<float>(const A<double> input)
{
return A<float>(input._data);
}
也許這有助於解釋我想實現的目標?
亞當第二個編輯:
return A<float>((float)input._data);
這是更好?
完全相同的方式,你會怎麼做,如果你沒」不要使用模板。 – Adam
@ n.m。這並不回答 – user3728501
@ n.m。我嘗試了谷歌搜索,我還沒有找到相關信息 – user3728501