c++ - 有没有办法避免错误 C2039: "value": Is not a member of "boost::proto"?
问题描述
我正在使用boost::network::uri::encoded()
对我的请求 url 进行编码。但是当我构建项目时,我看到了错误“错误 C2039:“值”:不是“boost::proto”的成员”。其中有四个,从boost\proto\generate.hpp(239,20);boost\proto\generate.hpp(239,53);boost\proto\generate.hpp(248,20);boost\proto 报告\generate.hpp(248,53)。这是我的测试代码:
#include <iostream>
#include <string>
#include "boost/network/uri.hpp"
using std::string;
string EncodeURL(string str)
{
return boost::network::uri::encoded(str);
}
string DecodeURL(string str)
{
return boost::network::uri::decoded(str);
}
int main()
{
EncodeURL("https://test.com/a+a+a.html");
return 0;
}
我安装boost
和cpp-netlib
使用。我的vcpkg
IDE是Visual Studio Professional 2019
,操作系统是Windows 10 Professional Workstation x64 (Ver.2004)
。我想知道如何避免这些错误,或者以其他方式对 UNICODE 兼容的 URL 进行编码。
解决方案
这是boost库的一个错误。可以通过将 boost 库更新到最新版本或编辑来修复它boost\proto\generate.hpp
。
编辑方式boost\proto\generate.hpp
:
将第 95 行更改为
#if BOOST_WORKAROUND(BOOST_MSVC, < 1800)
将第 233 行更改为
#if BOOST_WORKAROUND(BOOST_MSVC, < 1800)
这是来自 boost 库的PR 。
推荐阅读
- javascript - 构造函数原型中新添加的函数在对象上调用时不起作用
- leaflet - 如何在 Leaflet.js 中正确添加多边形
- android - 我想制作一个带计时器的按钮?
- splunk - 如何使用正则表达式在一行中计算 splunk 日志中的 id
- python - 在 Ubuntu16.04 上安装 PyQT5
- flume - Flume:如何使用 spoolDir 跟踪指定的子文件夹?
- asp.net-core-mvc - 如何从.net core 2.1 mvc中的控制器调用自定义身份注册方法
- python - 遍历具有多个条件的所有行
- c# - 按钮重复而不是一次加载相同的信息(C#)
- scikit-learn - 欧几里得距离是否测量语义相似度?