llvm :: Type结构的字符串表示

时间:2012-01-04 01:55:55

标签: c++ string llvm llvm-3.0

llvm::Type 2.9以前用过getDescription方法来检索该类型的字符串表示。这个方法在llvm 3.0中不再存在。

我不确定这是否被弃用而不是Type::print(raw_ostream&),但无论如何我对这个API很好奇。关于如何使用它的例子有哪些?如何转储到stringconst char*

特别是,我想将字符串传递给Boost::Format,这是一个现代的c ++ sprintf

1 个答案:

答案 0 :(得分:13)

我想,你需要创建一个llvm::raw_string_ostream的实例并将你的std :: string传递给它的construtor。现在您可以将其用作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();