2012-02-27 26 views
0

這裏自動完成迭代器是我的代碼(編譯罰款):Eclipse進行C++

auto_ptr<people_t> ppl(people("people.xml")); 
people_t::person_sequence &ps(ppl->person()); 
for(people_t::person_iterator i (ps.begin()); i!=ps.end(); ++i) 

在最後一行,當我嘗試從自動完成列表的列表,唯一選擇begin()end()我得到的是「序列」(不是begin, end ...),所以我必須輸入它們。任何想法爲什麼?以及如何解決這個問題?

+0

它編譯? – WeaselFox 2012-02-27 07:54:11

+0

是的,它編譯 – rahman 2012-02-27 07:55:48

+0

@rahman:你使用哪個版本的eclipse和CDT? – 2012-02-27 08:35:07

回答

2

我不知道爲什麼這兩個符號不會出現在列表中。但是,C++擁有任何編程語言中最複雜的語法之一。一般來說,對於不需要了解全部(編譯器)的工具,他們會嘗試在大部分工作上做出相當好的工作(80/20規則)。所以當你特別使用宏和模板時,IDE可能會感到困惑。

我注意到的一件事是,因爲這個原因,我對C++知識比Java更有信心。所以有權衡。如果你知道這是正確的,編譯器不抱怨,我不會擔心它。

+0

@@ parkovski,謝謝。你很可能是對的。多數民衆贊成我也猜到了。我會給它一段時間,如果沒有其他答案給出,我會標記你的答案是正確的。 tanx – rahman 2012-02-27 08:43:18

+0

我在使用Eclipse的模板和宏中遇到過很多問題,所以它根本不會讓我感到意外。他們重新實現C++解析器的策略在這裏顯示了其缺點:x – 2012-02-27 11:46:13