Qt Creator IDE 似乎错误地将 reinterpret_cast<::GlobalType> 标记为无效
Qt Creator IDE appears to be falsely marking reinterpret_cast<::GlobalType> as invalid
我目前正在将一些 class 文件从我们的 Visual Studio 源环境移动到 Qt Creator(版本 3.4.2)中。
我做了几处更改以适应编译器(到 MinGW)中的差异。让我感到困惑的一件事是 IDE 报告了一个特定的错误(红色下划线)但仍然可以正常编译。
我很确定问题与使用 reinterpret_cast<T>
无关,其中 T
是全局命名空间。
例如,以下行在 IDE 中将显示为不正确,但仍会编译:
::GetWindowThreadProcessId(window, reinterpret_cast<::LPDWORD>(&processId));
工具提示指出:
expected ';' got ':'
如果我更改代码以从 LPDWORD
中删除 ::
,语法突出显示就会消失。这在 IDE:
中没问题
::GetWindowThreadProcessId(window, reinterpret_cast<LPDWORD>(&processId));
我怀疑这是 IDE 中的错误。这是一个安全的假设吗?
我不打算更改使用全局命名空间的代码风格。
感谢 lisyarus 的评论,我发现这实际上是 QT Creator 中的一个错误。已经有错误报告 here。
正如我在问题中提到的,错误不会阻止您编译代码。如果您愿意,可以在 <
和 ::
之间添加一个 space。
我目前正在将一些 class 文件从我们的 Visual Studio 源环境移动到 Qt Creator(版本 3.4.2)中。
我做了几处更改以适应编译器(到 MinGW)中的差异。让我感到困惑的一件事是 IDE 报告了一个特定的错误(红色下划线)但仍然可以正常编译。
我很确定问题与使用 reinterpret_cast<T>
无关,其中 T
是全局命名空间。
例如,以下行在 IDE 中将显示为不正确,但仍会编译:
::GetWindowThreadProcessId(window, reinterpret_cast<::LPDWORD>(&processId));
工具提示指出:
expected ';' got ':'
如果我更改代码以从 LPDWORD
中删除 ::
,语法突出显示就会消失。这在 IDE:
::GetWindowThreadProcessId(window, reinterpret_cast<LPDWORD>(&processId));
我怀疑这是 IDE 中的错误。这是一个安全的假设吗?
我不打算更改使用全局命名空间的代码风格。
感谢 lisyarus 的评论,我发现这实际上是 QT Creator 中的一个错误。已经有错误报告 here。
正如我在问题中提到的,错误不会阻止您编译代码。如果您愿意,可以在 <
和 ::
之间添加一个 space。