2013-02-28 97 views
1
#include <iostream> 

class SomeStructure 
{ 
    int mMemberOne; 
    float mMemberTwo; 

    char MemberFunction() 
    { 
     int test = 0; 
     ++test; 
     this-> 
    } 
}; 

    int main() 
    { 
    SomeStructure abc; 
    abc.MemberFunctionMemberFunction 
    } 

除了当我试图自动完成this->时,其他任何自动完成都可以在此文件中使用。我没有任何建议。运行semantic-analyze-debug-assist给了我这样的:Emacs CEDET语义没有`this`关键字的自动完成。 (C++)

Unable to find symbol this. 

The prefix lookup code threw the following error: 
    (error "Cannot find definition for \"this\"") 

To debug this error you can do this: 
    M-x toggle-debug-on-error RET [ Do It ] 
and then re-run the debug analyzer. 

M-x bovinate给我:

(("iostream" include (:system-flag t) (unlink-hook (semantic--tag-unlink-secondary-overlays) secondary-overlays (#<overlay from 1 to 20 in junk.cpp>) dependency-file "c:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/include/iostream" link-hook (semantic--tag-link-secondary-overlays) unlink-copy-hook (semantic--tag-unlink-copy-secondary-overlays) :filename "d:/project/client/junk.cpp") #<overlay from 1 to 20 in junk.cpp>) ("SomeStructure" type (:members (("mMemberOne" variable 
    (:type "int") 
    (reparse-symbol classsubparts) 
    #<overlay from 46 to 61 in junk.cpp>) 
    ("mMemberTwo" variable 
    (:type "float") 
    (reparse-symbol classsubparts) 
    #<overlay from 64 to 81 in junk.cpp>) 
    ("MemberFunction" function 
    (:type "char") 
    (unlink-copy-hook 
     (semantic--tag-unlink-copy-secondary-overlays) 
     link-hook 
     (semantic--tag-link-secondary-overlays) 
     reparse-symbol classsubparts secondary-overlays 
     (#<overlay from 85 to 107 in junk.cpp>) 
     unlink-hook 
     (semantic--tag-unlink-secondary-overlays)) 
    #<overlay from 85 to 165 in junk.cpp>)) :type "class") (unlink-copy-hook (semantic--tag-unlink-copy-secondary-overlays) link-hook (semantic--tag-link-secondary-overlays) secondary-overlays (#<overlay from 22 to 42 in junk.cpp>) unlink-hook (semantic--tag-unlink-secondary-overlays)) #<overlay from 22 to 168 in junk.cpp>) ("main" function (:type "int") (unlink-copy-hook (semantic--tag-unlink-copy-secondary-overlays) link-hook (semantic--tag-link-secondary-overlays) secondary-overlays (#<overlay from 172 to 183 in junk.cpp>) unlink-hook (semantic--tag-unlink-secondary-overlays)) #<overlay from 172 to 250 in junk.cpp>)) 

所以它看起来像SomeStructure结构正确分析。它看起来像语义有一些问题this

而且我也跟着启用toggle-debug-on-error重新运行的错误的建议,但是,即使与启用了调试器不会出现在错误打破。

使用最新版本的Emacs(24)和CEDET(主干)。

我不能相信我有这个问题只有一个,那一定是我做错了什么......

回答

1

我已经对应了与维护者的一个(大卫Engster),和他对此提供修复非常敏感。此修复程序可以在CEDET的BZR库中找到的修订8490