C++ clang中classof方法的目的是什么?

C++ clang中classof方法的目的是什么?,c++,clang,C++,Clang,让我给你一个例子来解释我想做什么(或者至少知道这是否是可行的): 在叮当声中,让我们做一些基本动作。正如您在提供的链接上看到的,此ValueDecl可以: 做一个简单的ValueDecl 做一个 成为一个 成为一个 成为一个 我想知道,给定一个ValueDecl*,我是否可以确定它是上面列出的类中的一个,或者我是否受限于此ValueDecl* 每个班级都有这种方法,但我不明白这种方法的目的。它能解决我的问题吗?classof确实是解决方案的一部分,但通常不用于直接使用 相反,您应该使用。LL

让我给你一个例子来解释我想做什么(或者至少知道这是否是可行的):

在叮当声中,让我们做一些基本动作。正如您在提供的链接上看到的,此
ValueDecl
可以:

  • 做一个简单的
    ValueDecl
  • 做一个
  • 成为一个
  • 成为一个
  • 成为一个
我想知道,给定一个
ValueDecl*
,我是否可以确定它是上面列出的类中的一个,或者我是否受限于此
ValueDecl*


每个班级都有这种方法,但我不明白这种方法的目的。它能解决我的问题吗?

classof
确实是解决方案的一部分,但通常不用于直接使用

相反,您应该使用。LLVM程序员手册中的一个示例:

static bool isLoopInvariant(const Value *V, const Loop *L) {
  if (isa<Constant>(V) || isa<Argument>(V) || isa<GlobalValue>(V))
    return true;

  // Otherwise, it must be an instruction...
  return !L->contains(cast<Instruction>(V)->getParent());
}
static bool isLoopInvariant(常量值*V,常量循环*L){
如果(isa(V)| | isa,您会注意到它在幕后使用了
classof