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