它的建議here在接下來的方式實現:自己的std :: is_function實施
template<class Ret, class... Args>
struct is_function<Ret(Args...)const> : std::true_type {};
template<class Ret, class... Args>
struct is_function<Ret(Args...)volatile> : std::true_type {};
但它是一個有效的函數語法?的Visual Studio 2013提供了一個錯誤:
error C2270: 'abstract declarator' : modifiers not allowed on nonmember functions
你有沒有在使用GCC /鐺在線編譯嘗試的代碼? VS2013與可變參數模板有關。您的代碼可能是正確的,並且該錯誤在編譯器中。 – Borgleader
@Borgleader我在IdeOne.com上檢查過,你是對的,這是VS問題。但是,還有,有這樣的簽名功能的例子嗎?爲什麼'const'和'volatile'可以放到非成員函數中? –