我想通过尝试检查给定函数是否创建来检测类依赖性中的循环。
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。