gpt4 book ai didi

c++ - QT Creator 和使用智能指针完成奇怪的代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:45:21 25 4
gpt4 key购买 nike

我正在使用 qtcreator (2.8.1),使用智能指针时出现一些奇怪的行为。

看看这个片段:

class myclass {
public:
void test() {};
};

....
std::shared_ptr<myclass> foo(new myclass);
foo->test();

std::unique_ptr<myclass> bar(new myclass);
bar->test();

如果我键入“foo->”,代码完成窗口会弹出,但如果我键入“bar->”,则什么也不会发生。

知道为什么代码补全只适用于 shared_ptrs 而不适用于 unique_ptrs 吗?

更新:知道我正在使用带有 CMake 和 add_definitions(-std=c++11) 的 QT Creator 可能很重要。

最佳答案

It's a bug.

在未来的某个时候,Qt Creator 可能会开始使用真正的编译器前端(可能是 clang,这对这种用途非常有用)来执行 C++ 解析以实现自动完成和语法高亮显示,但是 2.8.1 有它自己不完善的 C++ 解析器。 C++ 具有图灵完备的模板和预处理器宏,以及数十年累积的遗留问题,解析起来异常复杂(因此,如果你完全解析的话,速度会很慢),所以如果解析不是这样,这样的错误就不足为奇了不是由实际的符合标准的编译器完成的。

关于c++ - QT Creator 和使用智能指针完成奇怪的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20413429/

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