Skip to main content
 首页 » 编程设计

C/C++ASIO2移植出错解决方案

2022年07月19日167java哥

项目在做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


本文参考链接:https://www.cnblogs.com/xihong2014/p/14975318.html