Emacs,C++;向量的代码完成
我是Emacs的新手,而且 我有以下代码作为示例。 我已经安装,安装,安装,和。 您可以在底部找到我的简单Emacs配置 问题是,当我在main()中键入q[0]并按下(点)时,我看到的是向量的37个成员,而不是人,尽管应该是名和姓。在函数greet()中,完成工作与预期一样,但它与vector无关 我的问题是,如何完成向量元素的代码完成呢Emacs,C++;向量的代码完成,emacs,intellisense,customization,stdvector,cedet,Emacs,Intellisense,Customization,Stdvector,Cedet,我是Emacs的新手,而且 我有以下代码作为示例。 我已经安装,安装,安装,和。 您可以在底部找到我的简单Emacs配置 问题是,当我在main()中键入q[0]并按下(点)时,我看到的是向量的37个成员,而不是人,尽管应该是名和姓。在函数greet()中,完成工作与预期一样,但它与vector无关 我的问题是,如何完成向量元素的代码完成呢 #include <iostream> #include <vector> using namespace std; class
#include <iostream>
#include <vector>
using namespace std;
class Person
{
public:
string first_name;
string last_name;
};
void greet(Person a_person)
{
// a_person.first_name is completed as expected!
cout << a_person.first_name << "|";
cout << a_person.last_name << endl;
};
int main()
{
vector<Person> q(2);
Person guy1;
guy1.first_name = "foo";
guy1.last_name = "bar";
Person guy2;
guy2.first_name = "stack";
guy2.last_name = "overflow";
q[0] = guy1;
q[1] = guy2;
greet(guy1);
greet(guy2);
// cout q[0]. I want to see first_name or last_name here!
}
这是语义分析器的一个已知问题。我目前无法处理gcc STL中使用的(您的问题源于allocator.h中的这种专门化)。这已在邮件列表中讨论:
一个Emacs中C++代码完成的例子:
谢谢PoKiTa,至少现在我知道这不是我对Emacs和CEDET的知识缺乏。谢谢,我看到Windows不支持,但我会在Ubuntu中使用它,这是一件事。我用Emacs编程C++。我使用CEDET,得到一列,怎么能得到两列,如本例中所示?@Eagle:屏幕截图显示了GCCSense的功能。我不知道是否可以将GCCSense插入CEDET。Windows版本可以在这里找到:我提供了GCC4.5.2上的补丁以及构建GCCSense Windows版本的步骤
;;; This was installed by package-install.el.
;;; This provides support for the package system and
;;; interfacing with ELPA, the package archive.
;;; Move this code earlier if you want to reference
;;; packages in your .emacs.
(when
(load
(expand-file-name "~/.emacs.d/elpa/package.el"))
(package-initialize))
(load-file "~/.emacs.d/cedet/common/cedet.el")
(semantic-load-enable-excessive-code-helpers)
(require 'semantic-ia)
(global-srecode-minor-mode 1)
(semantic-add-system-include "/gcc/include/c++/4.4.2" 'c++-mode)
(semantic-add-system-include "/gcc/i386-pc-mingw32/include" 'c++-mode)
(semantic-add-system-include "/gcc/include" 'c++-mode)
(defun my-semantic-hook ()
(imenu-add-to-menubar "TAGS"))
(add-hook 'semantic-init-hooks 'my-semantic-hook)