Code: Alles auswählen
template<typename _RandomAccessIterator, typename _Compare>
_RandomAccessIterator
__unguarded_partition(_RandomAccessIterator __first,
_RandomAccessIterator __last,
_RandomAccessIterator __pivot, _Compare __comp)
{
>> while (true)
{
while (__comp(__first, __pivot))
++__first;
--__last;
while (__comp(__pivot, __last))
--__last;
if (!(__first < __last))
return __first;
std::iter_swap(__first, __last);
++__first;
}
}
Hier mal einige Ausschnitte aus dem umfangreichen Programmcode in der Hoffnung dass das ausreicht:
Code: Alles auswählen
typedef struct {
char * name;
short type;
short flags;
long size;
time_t mtime;
} fbdata_t;
...
std::vector<fbdata_t*> name_list;
...
static int s_cmp( fbdata_t * dp0, fbdata_t * dp1 );
// ...
std::sort( name_list.begin(), name_list.end(), s_cmp );
for( unsigned it = 0; it < name_list.size(); it++ )
add( name_list[it]->name ); // Einfügen in Fl_Browser (Ok)
...
int File_Browser::s_cmp( fbdata_t * dp0, fbdata_t * dp1 ) {
char * s0 = dp0->name;
char * s1 = dp1->name;
return strcmp( s0, s1 );
}
Wo könnte der Fehler liegen?