我目前需要優化另一位程序員的代碼。他給我留下了很多模板類,並且我想使用來自Intels IPP-Library的函數來加速計算。問題是,大多數時候這些函數都需要你知道你使用的數據類型。所以我想重寫模板,以便在可以優化操作的情況下使用專用代碼。如果它不能,它應該回退到原來的代碼。C++模板中的特例
問題是我需要檢查某個數據類型是否正在使用,我不知道該怎麼做。
一個例子。我想這樣做:
template < class Elem > class Array1D
{
Array1D<Elem>& operator += (const Elem& a)
{
if (typeof(Elem) == uchar)
{
// use special IPP operation here
}
else
{
// fall back to default behaviour
}
}
有關如何做到這一點的任何想法?最好沒有其他圖書館的幫助。
謝謝