int BnId::operator<(const BnId& A) const /** Tri-state return of the ordering of number of true states @param A :: BnId object to compare @return Size<A.size, N of True<A.N of True, IntVal<A.IntVal */ { if (A.size!=size) return size<A.size; std::pair<int,int> cntA(0,0); // count for A std::pair<int,int> cntT(0,0); // count for this if (Znum!=A.Znum) return (Znum<A.Znum) ? 1 : 0; if (Tnum!=A.Tnum) return (Tnum<A.Tnum) ? 1 : 0; std::vector<int>::const_reverse_iterator tvc=Tval.rbegin(); std::vector<int>::const_reverse_iterator avc=A.Tval.rbegin(); while(tvc!=Tval.rend()) { if (*tvc!=*avc) return *tvc<*avc; ++tvc; ++avc; } return 0; }
void XmlBuilder::AddCData( const iStringT& data ) { check( doc_ != 0 || node_ != 0 ); CvtTA<> cntA( data.CStr(), CP_UTF8 ); xmlNodePtr cdata = xmlNewCDataBlock( doc_, (xmlChar*)cntA.str_, lstrlenA( cntA.str_ ) ); check( cdata != 0 ); if ( !xmlAddChild( node_, cdata ) ) throw XmlBuilderException(); }
void XmlBuilder::AddComment(const iStringT& comment) { check( doc_ != 0 || node_ != 0 ); CvtTA<> cntA( comment.CStr(), CP_UTF8 ); xmlNodePtr text = xmlNewComment( (xmlChar*)cntA.str_ ); check( text != 0 ); if ( !xmlAddChild( node_, text ) ) throw XmlBuilderException(); }