我想寫is_pure_func_ptr名爲特質檢查,可確定該類型是一個純函數指針,如下所示:如何確定參數是否爲純函數指針?
#include <iostream>
using namespace std;
void f1()
{};
int f2(int)
{};
int f3(int, int)
{};
struct Functor
{
void operator()()
{}
};
int main()
{
cout << is_pure_func_ptr<decltype(f1)>::value << endl; // output true
cout << is_pure_func_ptr<decltype(f2)>::value << endl; // output true
cout << is_pure_func_ptr<decltype(f3)>::value << endl; // output true
cout << is_pure_func_ptr<Functor>::value << endl; // output false
cout << is_pure_func_ptr<char*>::value << endl; // output false
}
我的問題是:如何實現的呢?
功能究竟你的「純」的意思,你可能需要額外的工作?對於純粹的定義,Functor對我來說看起來很純粹。 – Mat
@Mat,我的例子是爲了定義「純函數指針」是什麼。 – xmllmx
事情是,[純粹功能](http://en.wikipedia.org/wiki/Pure_function)是一個很好的術語。所以你的問題有點混亂。也許用「普通/頂層函數,而不是成員函數,lambda或其他可調用對象」代替,如果這就是你的意思? – Mat