c++ - Emacs、cedet 和 c++/c++11 支持

标签 c++ linux c++11 emacs

我通常在 linux 环境 (ubuntu) 中使用 emacs 进行开发,因为我喜欢这个编辑器。我也时不时地使用 eclipse,但我发现它很慢。

因为我想要类似 IDE 的功能,所以我尝试设置 cedet,它似乎可以完成这项工作。

  1. 我发现 cedet 永远找不到基类成员。例如,gcc 中的 std::vector 在其基类中有 std::vector::size 而它找不到它。
  2. 似乎不准确:如果我做类似“myvector.”的操作,它会给我类似 size_type 的补全。
  3. 不能使用来自 c++11 的 auto,它似乎不起作用。
  4. 即使是基本用法,srecode-getset 也会给我错误。

我的配置没有给出任何错误并且基于 alexott cedet config .

我的问题是:

  1. 完成度还那么不准确吗? (想想“vector.”给出诸如“size_type”之类的东西。
  2. c++/c++11 的 cedet 状态如何?汽车应该工作吗?我做错了什么?

我尝试同时使用捆绑的 ubuntu 版本和 bzr 存储库中的最新版本。 CEDET 似乎是一个非常有用的工具,但我想知道它是否需要做更多的工作。

提前致谢。

最佳答案

与其依赖 CEDET 来完成,您可能需要考虑 Emacs 中的替代完成提供程序。

Auto-complete-clang 和 auto-complete-clang-async 都与 clang 一起工作以获取完成并与自动完成包一起显示它们。 company-clang 类似,但使用 company 包来显示完成。

C、C++ 和 ObjC 的另一个次要模式称为 irony它使用 clang 来完成并可以使用多个前端来显示完成。这可能是设置它的最佳文档。

所有这些都可以在 Marmalade 上找到与 Emacs 24 中的包管理器一起使用。

关于c++ - Emacs、cedet 和 c++/c++11 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20117496/

相关文章:

c++ - 如何转换pugi :char_t* to string?

c++ - 将 std::string 编码/解码为 UTF-16

c++ - 在不调用析构函数的情况下追加到队列

linux - Bash 列出两个日期之间的日期时间

linux - 阿尔萨 : How to do stop and resume audio?

linux - Bash - 获取端口 ID 的脚本

c++ - 是否有另一种方法可以防止调用父类(super class)而不是基类方法(例如使用关键字或其他方法)调用派生方法?

c++ - 为什么 Microsoft 仍会支持 nothrownew.obj?

c++ - 使用类型别名不适用于 "const"指针

c++ - C++中使用引用变量的内存分配