如何解决用于协调 C++ 代码的 clang API 和工具
假设我们有一个很大的代码库和一个执行一些阻塞 IO 的函数 string blockRead()
。我希望将此函数更改为协程 my_task<string> coroRead()
并使用 clang 自动重构整个代码库以使用 co_await coroRead()
而不是 blockRead()
。当然,困难而乏味的部分是遍历调用图以协调所有调用函数。例如
block1.cc
#include "block_io.h"
int f1() {
auto x = blockRead();
return stoi(x);
}
block1.h
int f1();
block2.cc
#include "block1.cc"
int f2() {
return f1() + 1;
}
应该变成这样
coro1.cc
#include "coro_io.h"
#include "coro.h"
my_task<int> f1() {
auto x = co_await coroRead();
co_return stoi(x);
}
coro1.h
#include "coro.h"
my_task<int> f1();
coro2.cc
#include "coro1.h"
my_task<int> f2() {
co_return (co_await f1()) + 1;
}
clang 生态系统有点混乱,所以我希望得到一个方向,哪些 API 可能有助于解决这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。