gpt4 book ai didi

visual-c++ - 使用 `__FUNCTIONW__`时出现智能感知错误

转载 作者:行者123 更新时间:2023-12-02 21:22:23 24 4
gpt4 key购买 nike

我使用 __LINE____FILEW____FUNCTIONW__ 宏来帮助编写和实现自定义异常类。众所周知,它们会自动提供代码中调用它们的位置的行号、源文件名和函数名。另外,由于我专门使用 Unicode 工作,因此我必须使用扩展为字符串结果的 ...W 宽字符版本。

例如:

throw CEString(CEString::ERROR_INDEX_OUT_OF_BOUNDS,
__LINE__,
L"End index is smaller than start index",
L"Index Out of Bounds",
__FILEW__,
__FUNCTIONW__,
L"CString");

其中CEString是一个自定义异常类,其构造函数采用两个整数参数,然后是五个简单的宽字符串来定位和描述引发错误的错误。

我已正确包含头文件 iostreamnewcrtdefs.h。从文档来看,后者不应该是严格必要的,但由于它是实际定义宏的地方,所以我无论如何都将其包含在内。但是,VS2013 中的Intellisense 错误检查器突出显示了我对 __FUNCTIONW__ 宏的使用作为错误。它返回以下通知:

错误:标识符 L__FUNCTION__ 未定义。

...这很奇怪!

这变得更奇怪的是;程序本身 - 尽管有这个错误警告 - 编译愉快,更重要的是按预期运行。这个据称有争议的宏毫无怨言地创建了其宽字符函数名扩展。

所以这显然是Intellisense的问题,而不是代码或 header 的问题。你们中有人知道可能出了什么问题吗?

这可能是最接近的上一个问题:

Why would __FUNCTION__ be undefined?

但是,与 Ben Voight 不同,我发现该程序确实链接并运行!问题显然出在 Intellisense 上。

最佳答案

此错误已公开给 Microsoft

即使在 VS2010 中,Intellisense 通常似乎也存在宏问题(自定义或内置)

您现在应该可以忽略该错误。

还有this可能会让您对我的意思有所了解。

关于visual-c++ - 使用 `__FUNCTIONW__`时出现智能感知错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26745594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com