core.stdc.stdlib._compare_fp_t and qsort
Joe
jma at freedomcircle.com
Mon Mar 12 02:44:17 UTC 2018
On Monday, 12 March 2018 at 01:45:54 UTC, Adam D. Ruppe wrote:
> I just reformatted it but now the difference should be visible:
> `extern(C)` is missing on your callback.
>
> The scope things might make a difference too, but I know for
> sure extern(C) is necessary on your callback function.
I saw the extern(C) and I believe I tried it before my previous
post, but dismissed it because I saw no difference in compiler
behavior. In any case declaring
extern (C) int compar(const (void *) p1, const (void *) p2) {
... // as before
}
still gives the error:
function core.stdc.stdlib.qsort (scope void* base, ulong nmemb,
ulong size, extern (C) int function(scope const(void*), scope
const(void*)) @system compar) is not callable using argument
types (void*, ulong, ulong, extern (C) int function(const(void*)
p1, const(void*) p2))
It only went away with
extern (C) int compar(scope const (void *) p1, scope const (void
*) p2)
Could you explain or direct me to something that elucidates why
the "scope" qualifiers are needed? And is there something else
that is necessary inside compar() or are the "scope"s just for
decorative purposes?
Joe
More information about the Digitalmars-d-learn
mailing list