2

我目前正在将一些类文件从我们的 Visual Studio 源环境移动到 Qt Creator(版本 3.4.2)。

我进行了一些更改以适应编译器中的差异(进入 MinGW)。令我困惑的一件事是 IDE 报告了一个特定的错误(红色下划线),但仍然可以正常编译。

我很确定这个问题与使用reinterpret_cast<T>where Tis a global namespace 无关。

例如,以下行将在 IDE 中显示为不正确,但仍可编译:

::GetWindowThreadProcessId(window, reinterpret_cast<::LPDWORD>(&processId));

工具提示指出:

预期的 ';' 得到 ':'

如果我更改代码以::LPDWORD语法中删除,突出显示就会消失。这在 IDE 中会很好:

::GetWindowThreadProcessId(window, reinterpret_cast<LPDWORD>(&processId));

我怀疑这是 IDE 中的错误。这是一个安全的假设吗?

我不打算更改使用全局命名空间的代码样式。

4

1 回答 1

0

感谢 lisyarus 的评论,我发现这实际上是 QT Creator 中的一个错误。这里已经有一个错误报告。

正如我在问题中提到的,该错误不会阻止您编译代码。如果您愿意,可以在<和之间添加一个空格::

于 2015-08-19T14:28:34.527 回答