ASIO2移植出错解决方案
项目在做ASIO2环境测试时,出现要使用 c++语言标准 iso c++17标准(/std:c++17)的错误,解决办法参照网上资源:
1、工程属性--c/c++ 所有选项--c++语言标准 iso c++17标准(/std:c++17)
上述修改后,在调试 client.send时, 当使用 info 结构体时,也会出现错误,但源码中的例子没有问题
与官方联系有两个解决方案
(1) 语言 -> 符合模式 -> 改为 “否”
(2) socketHelper.cpp 中改为如下包含形式:
#include <asio2/base/selector.hpp>
struct info
{
int id;
char name[20];
char msg[100];
};
enum class Sender {TCC=1,TCIR,TCR};
namespace asio
{
inline asio::const_buffer buffer(const info& u) noexcept
{
return asio::const_buffer(&u, sizeof(info));
}
}
#include <asio2/asio2.hpp>
=========================================================================================
1>f:\code_pro\weakptr\weakptr\weakptr.cpp(27): error C2429: 语言功能 "if/switch 中的 init-statement" 需要编译器标志 "/std:c++17"
原文链接:https://blog.csdn.net/jiangdong2007/article/details/81105820