2017-07-20 65 views
0

有没有什么办法(即使是一个特定于gcc-7的hacky方式,使用-fconcepts)来测试是否定义了一个函数模板而不必提供参数,就像使用decltypestd::result_of功能模板的存在测试

例如,我想实现类似这样:

struct A { auto f(auto...); }; 

template<class T> requires X<T::f>() 
void f(T, auto...); 

auto z = f(A{}, 0, "", 'a'); 

回答

1
template<class T> 
concept bool X() 
{ 
    return requires 
    { T::f; }; 
} 

我想有时候阐明你的问题为别人而想出来为自己的最佳方式。