royqh1979 / RedPanda-CPP

A light-weight C/C++ IDE based on Qt
GNU General Public License v3.0
950 stars 103 forks source link

如果给命名空间取一个别名,那么通过该别名获得的类类型实例化的变量没有代码补全提示 #371

Closed West-Pavilion closed 5 months ago

West-Pavilion commented 5 months ago

如果给命名空间取一个别名,那么通过该别名获得的类类型实例化的变量没有代码补全提示

请考虑如下的 C++ 代码:

#include <iostream>
#include <filesystem>

/* 如果给命名空间取一个别名,那么通过该别名获得的
 * 类类型实例化的变量没有代码补全提示 */

/* 这里给 std::filesystem 取一个别名 */
namespace fs = std::filesystem;

int main() {
    fs::path p1 = "C:";
    /* 取消下一行的注释并重新输入点号 '.',会发现编辑器不显示该对象的成员的代码补全提示 */
//  p1.

    std::filesystem::path p2 = "D:";
    /* 不使用命名空间别名,直接获得的类类型实例化的变量 p2 有代码补全提示 */
//  p2.
}

屏幕截图(343)

屏幕截图(344)

下面是对应的测试代码:

如果给命名空间取一个别名,那么通过该别名获得的类类型实例化的变量没有代码补全提示.zip