我有一個模板類,某些成員函數只有在模板參數滿足某些條件時纔有意義。例如,使用std::enable_if<>
我只能爲這些情況定義它們,但我怎樣纔能有條件地調用它們?下面是一個簡單的例子C++編譯時條件成員函數調用
template<class T> class A
{
typename std::enable_if<std::is_floating_point<T>::value>::type a_member();
void another_member()
{
a_member(); // how to restrict this to allowed cases only?
}
};
你想在編譯時刪除它們嗎,編譯時出錯,還是在運行時知道? – Linuxios 2012-07-06 14:14:15
如何爲其餘類型(而不是浮點)提供一個空的a_member重載。 – mfontanini 2012-07-06 14:14:31
@Linuxios只是在編譯時不會在運行時調用它們。 – Walter 2012-07-06 14:17:39