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