Boost 1.83 C2440 bind.hpp 编译中出现错误

Boost 1.83 C2440 error in bind.hpp compile

提问人:Dave Katcoff 提问时间:10/25/2023 更新时间:10/25/2023 访问量:40

问:

以下是 bind.hpp 版本 1.83 中的几个类似模板模型之一:

  template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long) 
  {
     return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);
   }

它在 Visual Studio IDE 2022 中返回 C2440“无法将 void 转换为 boost::_bi::unspecified” 我尝试了各种演员阵容,但无济于事。使用 std:c++20(尝试过其他方法) 这是我迄今为止唯一的提升问题。

我尝试了各种强制转换,例如静态和动态,像 (R) 这样的普通强制转换,这是模板想要的。没有任何效果。

提升 编译器错误 转换

评论

0赞 sehe 10/25/2023
请分享最小的复制者,以及可能相关的预处理器定义。回复:“尝试过其他人”当您使用其他语言级别时会发生什么?
0赞 Dave Katcoff 10/26/2023
尝试过 C++14 和 17 的结果相同。今天,我通过将绑定文件夹从 Boost 1_55 复制到我的 1_83 源中来解决这个问题;我只需要做一个小改动就可以编译它。不过,我还是想获取 1_83 绑定文件夹进行构建。
0赞 sehe 10/26/2023
请分享最小的复制者。有些事情确实发生了变化,但我们无法开始看到什么影响了你。如果没有信息,我们所能做的就是指向发行说明。
0赞 sehe 10/26/2023
或者也许只是寻找现有的答案,比如 stackoverflow.com/questions/45549724/......
0赞 Dave Katcoff 10/26/2023
我可以尝试使用 1_83 绑定版本逐一检查我的 cpp 并查明导致错误的版本,就像我对the1_55版本所做的那样,该版本具有更清晰的错误消息。

答: 暂无答案