llvm::Type
2.9 和更早的版本曾经有getDescription
方法来检索类型的字符串表示。此方法在 llvm 3.0 中不再存在。
我不确定这是否被弃用Type::print(raw_ostream&)
,但无论如何我对这个 API 感到好奇。有哪些关于如何使用它的例子?我怎样才能转储到string
or const char*
?
特别是,我想将Boost::Format
现代 c++ 的字符串传递给它sprintf
。
我想,您需要创建一个实例llvm::raw_string_ostream
并将您的 std::string 传递给它的构造函数。现在您可以使用它,llvm::raw_ostream
完成后只需调用.str()
即可获取您的字符串。
像这样的东西:
std::string type_str;
llvm::raw_string_ostream rso(&type_str);
your_type->print(rso);
std::cout<<rso.str();
LLVM 已经改变了它的接口,所以现在下面的代码可以工作了:
std::string type_str;
llvm::raw_string_ostream rso(type_str);
your_type->print(rso);
std::cout<<rso.str();