|
Boost Users : |
Subject: Re: [Boost-users] Reg : Boost Error - any.hpp
From: Vijay (v2k.sweet_at_[hidden])
Date: 2011-08-30 22:37:20
Hi,
Below is the snippet code,
class Fcif;
class FcifNode {
public:
FcifNode (const string& val): value (val) {};
FcifNode (const Fcif& fcif): value (fcif) {};
FcifNode (const FcifNode& node): value (node.value) {};
FcifNode& operator= (const string& val)
{ value = val; return *this; };
FcifNode& operator= (const Fcif& val)
{ value = val; return *this; };
FcifNode& operator= (const FcifNode& val)
{ value = val.value; return *this; };
bool isValue () const
{ return (value.type () == typeid (string)); };
bool isFcif () const;
type_info const& type () const { return value.type (); };
string& getValue () const;
Fcif& getFcif () const;
string toString () const;
protected:
any value;
};
class Fcif: public map<string,FcifNode> {
public:
Fcif () { };
Fcif (const Fcif& fcif): map<string,FcifNode> (fcif) { };
Fcif (const string& fcifString);
string getValue (string const& name, bool required = true) const;
bool checkValue (string const& name, string& value) const;
bool setValue (string const& name, string const& value, bool
escapeIt = true);
void setValue (Fcif const& fcif);
bool removeNode (string const& name, type_info const& type = typeid
(void));
bool removeValue (string const& name)
{ return removeNode (name, typeid (string)); };
bool removeAggregate (string const& name)
{ return removeNode (name, typeid (Fcif)); };
bool setAggregate (string const& name, Fcif const& fcif);
Fcif* getAggregate (string const& name) const {
// auto-append '|' to name as needed
return const_cast<Fcif*>(this)->addAggregate (
name + ((name.empty () || name[name.size()-1] ==
'|') ? "" : "|") , false);
};
string toString () const;
void parseFcif (string const& fcifString);
private:
Fcif* addAggregate (string const& name, bool create = true);
Fcif parsePreFcif (string::const_iterator begin_pos,
string::const_iterator& end_pos);
string extractTag (string const& name) const {
string::size_type tagpos = name.find_last_of ('|');
return name.substr (tagpos == string::npos ? 0 : tagpos +
1);
};
string extractAgg (string const& name) const {
string::size_type tagpos = name.find_last_of ('|');
return name.substr (0, tagpos == string::npos ? 0 : tagpos);
};
};
Regards,
Vijay
Can you please post at least a self-consisting code snippet which allows to
reproduce it...
Otherwise I doubt someone will help you with this...
Best Regards,
Ovanes
On Sun, Aug 28, 2011 at 7:57 AM, Vijay <v2k.sweet_at_[hidden]> wrote:
>
>
>
> Hi,
>
> We are using boost version 1.31.0 in our C++ code. Our OS is HP-UX 11.31
> Itanium. We use aCC compiler. While compiling my code, I'm getting the
below
> error. Can any one help me to fix this issue ?
>
> "/opt/app/q1app2c4/boost-1.31.0/boost/any.hpp", line 125: error #2070:
> incomplete type is not allowed
> ValueType held;
> ^
> detected during:
> instantiation of class
> "boost::any::holder<ValueType> [with ValueType=Fcif]"
> at
> line 32
> instantiation of "boost::any::any(const ValueType &) [with
> ValueType=Fcif]" at line 35 of
> "/opt/app/q1app2c4/src/share/incl/Fcif.h"
>
>
>
>
> Cheers,
> Vijay....(V2K)
> E-mail to : v2k.sweet_at_[hidden]
> Catch me @ 9962003328, 7871181610
> Blackberry PIN : 259943F3
> "Life is just one grand sweet song, so start the music."
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