409{
411 {
412
413 std::stable_sort(uniqueRefs.begin(),uniqueRefs.end(),
414 [](const auto &left,const auto &right)
415 { return left.reqId()< right.reqId() ||
416 (left.reqId()==right.reqId() &&
417 dstricmp(left.title(),right.title())<0);
418 });
419
420
421 auto last = std::unique(uniqueRefs.begin(),uniqueRefs.end(),
422 [](const auto &left,const auto &right)
423 { return left.reqId()==right.reqId() &&
424 dstricmp(left.title(),right.title())==0;
425 });
426
427
428 uniqueRefs.erase(last, uniqueRefs.end());
429 };
430
431
432 std::partition_copy(
433 inputReqRefs.begin(),
434 inputReqRefs.end(),
435 std::back_inserter(satisfiesRefs),
436 std::back_inserter(verifiesRefs),
437 [](const auto &ref) { return ref.type()==RequirementRefType::Satisfies; }
438 );
439
440
441 makeUnique(satisfiesRefs);
442 makeUnique(verifiesRefs);
443}
std::vector< RequirementRef > RequirementRefs
List of requirement references.