строковое представление llvm:: Type structure
llvm::Type
2.9 и ранее использовали getDescription
метод для получения строкового представления типа. Этот метод больше не существует в llvm 3.0.
Я не уверен, что это устарело в пользу Type::print(raw_ostream&)
, но в любом случае мне любопытно этот API. Какие примеры того, как его использовать? Как я могу сбросить в string
или const char*
?
в частности, я хочу передать строку Boost::Format
который является современным c++ sprintf
.
1 ответов
Я полагаю, вам нужно создать экземпляр 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();