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