int main()
{
int a[10] = {0,0,0,0,0,0,0,0,0,0};
int order = 1;
std::qsort(a,10,sizeof(int),[](const void *p1,const void *p2) -> int
{
int order = 1;
if(order==1)
return *(int *)p1-*(int*)p2;
if(order==2)
return *(int *)p2-*(int*)p1;
});
return 0;
}
компилируется
#include <cstdlib>
int main()
{
int a[10] = {0,0,0,0,0,0,0,0,0,0};
int order = 1;
std::qsort(a,10,sizeof(int),[order](const void *p1,const void *p2) -> int
{
if(order==1)
return *(int *)p1-*(int*)p2;
if(order==2)
return *(int *)p2-*(int*)p1;
});
return 0;
}
не компилируется
lambda.cpp:13:6: ошибка: cannot convert ‘main()::<lambda(const void*, const void*)>’ to ‘int (*)(const void*, const void*)’ for argument ‘4’ to ‘void qsort(void*, size_t, size_t, int (*)(const void*, const void*))’