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