我正在编写一个使用boost :: asio进行某些http操作的C ++应用程序。假设它完全符合unicode,我选择了boost :: asio。但是,我无法在UNICODE中编译,因为asio的某些部分被硬编码为char。
案例:
#ifndef TCHAR
#ifdef _UNICODE
#define TCHAR wchar_t
#else
#define TCHAR char
#endif
#endif
// The following lines only complile in MBCS and not in UNICODE.
boost::asio::basic_streambuf<std::allocator<TCHAR> > request;
std::basic_ostream<TCHAR, std::char_traits<TCHAR> > requestStream(&request);
boost :: asio :: read_until 函数接受char作为分隔符。我在这里做错了吗?请注意我是unicode的新手,以前从未需要它。
boost :: asio :: basic_streambuf派生自std :: streambuf而不是std :: basic_streambuf,所以我怀疑boost :: asio不是真的符合UNICODE。
答案 0 :(得分:0)
正确,boost :: asio不符合UNICODE。