C++ 无法使用boost::asio::yield\u上下文编译boost::asio::spawn程序
我想使用C++ 无法使用boost::asio::yield\u上下文编译boost::asio::spawn程序,c++,c++17,boost-asio,C++,C++17,Boost Asio,我想使用boost::asio同时从多个boost::processes读取stdout和stderr。但是,我在boost::asio中遇到编译问题,可以重构以下未编译的最小示例: #include <boost/asio.hpp> #include <boost/asio/spawn.hpp> int main() { boost::asio::io_context ios; boost::asio::spawn(ios, [
boost::asio
同时从多个boost::process
es读取stdout
和stderr
。但是,我在boost::asio
中遇到编译问题,可以重构以下未编译的最小示例:
#include <boost/asio.hpp>
#include <boost/asio/spawn.hpp>
int main() {
boost::asio::io_context ios;
boost::asio::spawn(ios,
[](boost::asio::yield_context ctx) {
});
ios.run();
return 0;
}
是的,这是boost特定版本中缺少的间接包含。看到了 或者
- 升级到boost 1.73
- 包括相关标题:
#包括
#包括
#包括
#包括
int main(){
boost::asio::io\u上下文ios;
boost::asio::spawn(ios、,
[](boost::asio::yield\u context ctx){
});
ios.run();
返回0;
}
是的,这是boost特定版本中缺少的间接包含。看到了
或者
- 升级到boost 1.73
- 包括相关标题:
#包括
#包括
#包括
#包括
int main(){
boost::asio::io\u上下文ios;
boost::asio::spawn(ios、,
[](boost::asio::yield\u context ctx){
});
ios.run();
返回0;
}
我记得在特定版本的boost中看到过这一点。你能升级到更新的版本吗?哦,等等。也许我当时通过加入boost/range.hpp
解决了这个问题。我手上再也没有1.72了,我记得在boost的特定版本中看到过这个。你能升级到更新的版本吗?哦,等等。也许我当时通过加入boost/range.hpp
解决了这个问题。我手边再也没有1.72了
In file included from /usr/include/boost/coroutine/coroutine.hpp:10,
from /usr/include/boost/coroutine/all.hpp:11,
from /usr/include/boost/asio/spawn.hpp:19,
from [...]/main.cpp:3:
/usr/include/boost/coroutine/asymmetric_coroutine.hpp: In function ‘typename boost::coroutines::pull_coroutine<R>::iterator boost::coroutines::begin(boost::coroutines::pull_coroutine<Arg>&)’
/usr/include/boost/coroutine/asymmetric_coroutine.hpp:2364:17: error: ‘begin’ is not a member of ‘boost’
2364 | { return boost::begin( c); }
#include <boost/asio.hpp>
#include <boost/range/begin.hpp>
#include <boost/range/end.hpp>
#include <boost/asio/spawn.hpp>
int main() {
boost::asio::io_context ios;
boost::asio::spawn(ios,
[](boost::asio::yield_context ctx) {
});
ios.run();
return 0;
}