如何检查是否创建了给定类型的模板函数?

时间:2017-04-03 15:43:40

标签: c++ c++11 templates c++14 typetraits

我想通过尝试检查给定函数是否创建来检测类依赖性中的循环。

template < class PA, class CH>
void dependsOn( PA* , CH* )
{
    #pragma message("COMPILE: " __FUNCSIG__)
    static_assert(!std::is_function< decltype(dependsOn<PA, CH>) >::value,"Cycle in dependencies");
}

每个类都会调用该模板函数     B级();

class A{
    B b;
public:
    A(){ dependsOn(this, &b);}
}

然而,无论是否创建了这样的模板函数,这个检查都不起作用,因为is_function总是返回true。

0 个答案:

没有答案