有一段时间我们提升了代码:
typedef BoostAsioPipe pipe;
#elif defined(BOOST_POSIX_API)
typedef boost::asio::posix::stream_descriptor pipe;
#elif defined(BOOST_WINDOWS_API)
typedef boost::asio::windows::stream_handle pipe;
#else
# error "Unsupported platform."
#endif
但是现在,例如在Windows编译器上告诉我们stream_handle不是boost :: asio的一部分...所以它现在在哪里? (并且stream_descriptor在同一个地方或它也移动了)?
更新
愚蠢的我:现在有类似boost::asio::windows::pipe
的内容,但编译器提供C3083
#elif defined(BOOST_WINDOWS_API)
typedef boost::asio::windows::pipe pipe;
#else
答案 0 :(得分:1)
Windows随机访问HANDLE仅在编译时可用于定位Windows,并且仅在使用I / O完成端口后端时(默认情况下)。程序可以测试宏BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE以确定它们是否受支持。 (也适用于BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE)