在使用C++模板元编程时,我发现很难弄清楚我的代码有什么问题.可能我不是很擅长理解错误消息,但据我所知,我不能诉诸于打印语句或断点来弄清楚发生了什么.
在尝试找出为什么没有编译的东西时,您可以提供哪些提示或建议,而不仅仅是手动选择代码并希望它来找我?
对于STL,至少有一些工具可以输出更人性化的错误消息.请访问http://www.bdsoft.com/tools/stlfilt.html
对于非STL模板,您只需了解错误的含义.在你看了十几次后,你会更容易猜到问题是什么.如果你在这里发布它们,也许有人可以帮助你搞清楚.
您可以尝试使用较新的编译器.如果您正在使用Visual C++ 6.0,请切换到9.0,您将看到编译器错误的有用性大幅提升.
否则,我的技术通常是尽可能地测试一小段代码,直到我发现错误被隔离.这可能是模板系统最大的失败 - 没有合理的调试方法.
在您自己的代码中,自由使用编译时断言以使使用问题更容易诊断.
如果你正在使用gcc,我发现colorgcc可以提供一点点帮助.通过颜色编码,可以更容易地在心理上解析警告与错误和上下文信息.