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

发布于 2024-12-23 21:01:04 字数 339 浏览 2 评论 0原文

llvm::Type 2.9 及更早版本使用 getDescription 方法来检索类型的字符串表示形式。这个方法在llvm 3.0中不再存在。

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

特别是,我想将字符串传递给 Boost::Format,它是现代 C++ sprintf

llvm::Type 2.9 and earlier used to have getDescription method to retrieve a string representation of the type. This method does not exist anymore in llvm 3.0.

I'm not sure if this is deprecated in favor of Type::print(raw_ostream&), but in any case I'm curious of this API. What examples are there about how to use it? How can I dump to a string or const char*?

In particular, I want to pass the string to Boost::Format which is a modern c++ sprintf.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千秋岁 2024-12-30 21:01:04

我想,您需要创建 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();

I suppose, you need to create an instance of llvm::raw_string_ostream and pass your std::string into it's construtor. Now you can use it as llvm::raw_ostream and when you are done just call .str() to get your string.

Something like that:

std::string type_str;
llvm::raw_string_ostream rso(&type_str);
your_type->print(rso);
std::cout<<rso.str();

LLVM has changed its interface, so now the following will work:

std::string type_str;
llvm::raw_string_ostream rso(type_str);
your_type->print(rso);
std::cout<<rso.str();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文