c++ - Visual Studio 嵌套宏/模板类调试帮助
问题描述
我试图使用 Visual Studio 2019 在 Windows 中构建 Goptical 包(https://savannah.gnu.org/projects/goptical)。它使用 DPP 库(https://code.ssji.net/hg/)抛出在 Visual Studio 下构建时出错。使用 gcc 的 Linux 构建按预期顺利进行,但我需要在带有 Visual Studio 的 Windows 上使用它。
错误来自委托类,这些委托类是使用宏进一步包裹的嵌套模板类。尝试调试,但 Visual Studio 似乎没有查明错误的确切位置,而是指向触发错误的最后一行。
是否有任何机制可以让我们看到宏定义逐步回滚?或者,我们可以检查以逐步调试此中间输出?在下面发布有问题的代码和错误详细信息:
1> delegate(578,1): error C2059: syntax error: ','
1> delegate(578): message : see reference to class template instantiation 'dpp::delegate_bind<base,R(void),3>' being compiled
代码:
#if DPP_DELEGATE_ARGC >= 2
_DPP_DELEGATE(2)
_DPP_DELEGATE_FUNC(2)
_DPP_DELEGATE_MEMBER(2)
_DPP_DELEGATE_MEMBER_THIS(2)
_DPP_DELEGATE_BIND(1, 1, 1, _DPP_DELEGATE_BTDEFS(1, 0), _a0, a0);
_DPP_DELEGATE_BIND(2, 1, 1, _DPP_DELEGATE_BTDEFS(1, 1), a0, _a0);
_DPP_DELEGATE_BIND(3, 0, 2, _DPP_DELEGATE_BTDEFS(2, 0, 1), _a0, _a1);
#endif
解决方案
推荐阅读
- dart - 尝试调用:ancestStateOfType('TypeMatcher 的实例
' - performance - 收集堆使用的性能数据
- encryption - 如何通过 openssl 将 jwk 转换为公钥
- python-3.x - 为什么当我需要给我别的东西时它会返回 0?
- android - 如何创建数字之间的操作?
- java - 如何在不同活动的android studio中加密/解密文本
- sapui5 - 控制器未加载自定义磁贴
- java - JavaFX WebView 不加载内容
- reactjs - 如何在 React 中找到“Invariant Violation: “Minified React error #31”的根源并修复它?
- mysql - 日期序列的mysql平均长度