本文整理汇总了C++中Predicate::setConstType方法的典型用法代码示例。如果您正苦于以下问题:C++ Predicate::setConstType方法的具体用法?C++ Predicate::setConstType怎么用?C++ Predicate::setConstType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Predicate
的用法示例。
在下文中一共展示了Predicate::setConstType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: addPredicate
// Adds a predicate to our list of predicates.
void TimeStepInfo::addPredicate(std::string& newPredicate, Constant *newConstType)
{
if(predicates == NULL)
{
allocatePredicates();
}
int compareResult = 0;
bool tmpNegated = false;
std::string tmpInnerPredicate = "";
int tmpMTimeStamp;
int tmpSTimeStamp;
// Try to extract h-style predicate info from the string. If it works, save the h-style predicate info. If not, just save the normal predicate.
bool tmpHPredicate = Predicate::extractHPredicateInfo(
newPredicate, tmpNegated, tmpInnerPredicate, tmpMTimeStamp, tmpSTimeStamp);
Predicate *newPred = new Predicate();
if(tmpHPredicate)
{
newPred->setName(tmpInnerPredicate);
newPred->setTimeStamp(tmpMTimeStamp, tmpSTimeStamp);
newPred->setBlnIsHPredicate(true);
newPred->setBlnIsNegated(tmpNegated);
}
else
{
newPred->setName(newPredicate);
newPred->setBlnIsNegated(tmpNegated);
}
// Regardless, save whatever Constant object pointer (if any) we were given.
newPred->setConstType(newConstType);
if(predicates->empty())
{ // If we don't have predicates yet, make this the first.
predicates->push_back(newPred);
}
else
{ // If we already have predicates, find this new one's proper place and stick it there.
std::list<Predicate*>::iterator lIter = predicates->begin();
while(lIter != predicates->end())
{
compareResult = (*lIter)->toPredicateString(false, false).compare(newPredicate);
if(compareResult < 0 || compareResult == 0)
{
// If the current element comes before the newcomer (or is the same as the newcomer), move on.
++lIter;
}
else
{
// The current element should go after the newcomer, break and insert here.
break;
}
}
predicates->insert(lIter, newPred);
}
}