我最近接了一个小型的MCF C++应用程序,它显然处于工作状态。首先,我在代码上运行 PC-Lint,而 lint 抱怨 CStringT 正在传递给 Format。互联网上的意见似乎存在分歧。有人说 CSting 旨在无错误地处理这个用例,但其他人(以及MSDN 文章)说它应该在传递给可变参数函数时始终被强制转换。Stackoverflow 可以就这个问题达成任何共识吗?
问问题
837 次
1 回答
3
CString 经过精心设计,可以作为变量参数列表的一部分传递,因此以这种方式使用它是安全的。而且您可以相当肯定,Microsoft 会注意不要破坏这种特殊行为。因此,如果您愿意,我会说您可以安全地继续以这种方式使用它。
也就是说,我个人更喜欢演员阵容。字符串类的行为方式并不常见(例如 std::string 没有),并且为了精神上的一致性,最好以“安全”的方式进行。
PS:有关实现细节和有关如何投射的进一步说明,请参阅此线程。
于 2009-05-29T06:16:16.443 回答