template<typename _Tp>
template <typename _StrictWeakOrdering>
void list<_Tp>::
merge(list& __x, _StrictWeakOrdering __comp)
{
iterator __first1 = begin();
iterator __last1 = end();
iterator __first2 = __x.begin();
iterator __last2 = __x.end();
while (__first1 != __last1 && __first2 != __last2)
if (__comp(*__first2, *__first1)) { .. }
}
Typprüfung erst nach Instantiierung
(späte Fehler-Erkennung)