我们可以检测员function template,variable template, class/ struct/ union template或alias template不知道量或性质template/ non-template参数?
当我试着考虑这个时,没有什么真正想到的.但是让我们有成员函数模板的结构:
struct foo
{
// Really random. Let's assume we don't know this declaration, just the name "bar"
template <class T, std::size_t N, class... Args>
void bar(T a, T b, T(&c)[N], Args const& ...);
};
Run Code Online (Sandbox Code Playgroud)
如何检查foo::bar模板是否存在?
基于实例化的类型特征在这里不适用,因为(理论上)我们不知道应该使用哪些参数,按什么顺序以及有多少参数.也许一些神奇的查找方法是合适的?或者也许这是不可能的?
在搜索时,我发现了这个问题,但答案中的解决方案需要有关性质的知识template.
这是我第一次尝试检测失败struct template:
struct foo
{ …Run Code Online (Sandbox Code Playgroud)