2014-11-17 55 views
1

我使用升壓庫來解析ini文件看起來像:ptree中迭代器的成員不是由自動完成identifed?

[head] 
type1=val1 
type2=cal2 
... 

我的代碼是這樣的:

#include <iostream> 
#include <string> 
#include <boost/property_tree/ptree.hpp> 
#include <boost/property_tree/ini_parser.hpp> 
using namespace std; 

int main() 
{ 
    using boost::property_tree::ptree; 

    boost::property_tree::ptree pt; 
    boost::property_tree::ini_parser::read_ini("test.ini", pt); 

    boost::property_tree::ptree::iterator pos1,pos2; 

    for(pos1 = pt.begin(); pos1 != pt.end() ; ++pos1) 
    { 
     cout << pos1->first << endl; 

     for(pos2 = pos1->second.begin() ; pos2 != pos1->second.end() ; ++pos2) 
     { 
      cout << " " << pos2->first << "=" << pos2->second.get_value<string>() << endl; 
     } 
     cout << endl; 
    } 

    return 0; 
} 

一切正常,並預期該程序輸出,但蝕痕所有POS1和POS2「 - >」的錯誤...時Intelli感不加載「第一」或「第二」選項,並標記它們的所有用途爲錯誤......然而,這一切編譯...

什麼想法? ?

這裏是它的外觀:

enter image description here

回答

0

pos1pos2不是指針,你應該使用的.代替->

+0

喜埃裏克,也許我不明白的itrator consept很好,但作爲我看到它POS1和POS2是一種指向他們迭代相同類型的(至少這是其作品對我來說陣列和矢量迭代器如何)。反正,我只是用「POS1。」我得到很多的迭代器的屬性和方法,但沒有任何ptree中的的.... –