Używając qsort w C przechodzimy w funkcji porównania np.Wskaźniki funkcji w C - operator adresu "niepotrzebny"
int cmp(const void*, const void*);
protoype z qsort oczekuje int (*) (const void *, const void *) tak nazywamy:
qsort(..., cmp);
ale jest równie ważne, aby zadzwonić:
qsort(..., &cmp);
i to jest to, co musielibyśmy zrobić, gdybyśmy przekazali statyczną funkcję-członka w C++. Kernighan & Ritchie (2. wydanie, 5.11 "Wskaźniki do funkcji" str. 111) stwierdza, że "ponieważ [cmp] jest znana jako funkcja, operator & nie jest potrzebny, tak jak nie jest potrzebny przed nazwą tablicy. "
Czy ktoś inny czuje się z tym trochę niekomfortowo (szczególnie pod względem bezpieczeństwa typu)?
To prawda, ale użycie tej obsady jest pałką, która mówi kompilatorowi "zaufaj mi, wiem, co robię, nawet jeśli myślisz inaczej". –