if (std::is_same<T, float>::value)
{
float a;
somefunc_float(x,len,&a);
}
上面的代碼是從一個模板,它接受一個指針X,可以是一些原始數據類型的指針(例如,x爲double *
,float *
或int *
)和somefunc_float
從一個lib,只能接受一個具體的數據類型爲x
(在上面的例子中爲float *
),編譯器總是給我錯誤,告訴我輸入數據類型(x)是不正確的,就好像表達式std::is_same<T, float>::value
一樣工作?模板和is_same()不起作用?
什麼是確切的錯誤信息? –
它不工作*你認爲它的工作方式。類型特徵應該用在* static *設置中,即專門化和重載。 –
@OliCharlesworth:「'x'不能轉換爲'float'類型嗎? –