Boost logo

Boost Users :

Subject: [Boost-users] Complier errors using property_tree 5 minute tutorial
From: Bill Moo (cppsysdev_at_[hidden])
Date: 2011-08-14 06:54:54


Hello Users,

I am using boost 1.47.0's property_tree on Windows 7 x64 using the Intel
Compiler v 12.0.1029.2010 and having followed the 5 Minute Tutorial to the
letter I get errors at complie time.

This is my header file :

#ifndef INFOSTRUCT_HPP

#define INFOSTRUCT_HPP

#include <string>

struct INFO

{

    unsigned m_Type ;

    std::string m_Desc ;

    std::string m_User ;

    std::string m_Pass ;

    std::string m_Server ;

    void load(const std::string & fileName) ;

    void save(const std::string & fileName) ;

} ;

#endif // INFOSTRUCT_HPP

and this is the .cpp file:

#include <boost/property_tree/ptree.hpp>

#include <boost/property_tree/xml_parser.hpp>

#include "infoStruct.hpp"

void INFO::load(const std::string &fileName)

{

    boost::property_tree::ptree pTree ;

    boost::property_tree::xml_parser::read_xml(fileName, pTree) ;

    m_Type = pTree.get("Database.Driver", 0) ;

    m_Pass = pTree.get < std::string>("Database.Pass") ;

}

void INFO::save(const std::string &fileName)

{

    return ;

}

But when I compile this I get lots and lots of compiler errors this
most significant of those being:

..\..\Includes\boost/property_tree/detail/ptree_implementation.hpp(52):
error #501: argument of type "const std::string std::_Pair_base<const
std::string, boost::property_tree::basic_ptree<std::string,
std::string, std::less<std::string>>>::*" is incompatible with
template parameter of type "const std::string std::pair<const
std::string, boost::property_tree::basic_ptree<std::string,
std::string, std::less<std::string>>>::*"

&value_type::first>,

^

detected during:

instantiation of class "boost::property_tree::basic_ptree<Key, Data,
KeyCompare>::subs [with Key=std::string, Data=std::string,
KeyCompare=std::less<std::string>]" at line 182

instantiation of "boost::property_tree::basic_ptree<Key, Data,
KeyCompare>::basic_ptree() [with Key=std::string, Data=std::string,
KeyCompare=std::less<std::string>]" at line 8 of
"..\DataFactory\infoStruct.cpp"

With the line in question being : boost::property_tree::ptree pTree ;

I honestly cannot see where or what I am doing wrong, so I am hoping
someone here can help me.

-- 
Bill


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net