我正在编写一个条件来查看const llvm :: Value *是否为常量。代码如下:
if(const Constant* c = dynamic_cast<Constant>(val)){
......
}
&#34; VAL&#34;这是一个const llvm :: Value *,然而,编译器说
error: 'llvm::Constant' is not a reference or pointer
if(const Constant* c = dynamic_cast<Constant>(val)){
^ ~~~~~~~~~~
我该如何修改?
答案 0 :(得分:0)
dynamic_cast
中使用的类型必须是指针或引用类型。我猜你也想要保持const
。
试试这个:
dynamic_cast<const Constant*>(val)
// ^^^^^ ^
答案 1 :(得分:0)
如果不需要在if块内部使用常量,则可以使用isa <>()
if(isa<Constant>(val)){ ...... }