$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] property tree find no match for 'operator=='
From: Sebastian Redl (sebastian.redl_at_[hidden])
Date: 2011-09-30 14:11:32
On 30.09.2011, at 19:17, Bernd Prager wrote:
> All,
>
> This is likely to be a silly question.
> I am trying to check for the existence of a value in a property tree.
>
> Reading the docs I assumed the easiest way would be:
>
> namespace pt = boost::property_tree;
> static pt::ptree pt;
>
> bool has(const std::string key) {
> if (pt.find(key) == pt.end()) return false; // (1)
> return true;
> }
>
> The compiler complains about "error: no match for 'operator=='" in line
> (1) though.
> What am I missing?
Because of a peculiarity of PTree, the iterator returned by find() is not compatible with those returned by begin() and end(). You must compare with not_found() to get the result you want.
Sebastian