C++传入匿名表达式时出现的错误

C++传入匿名表达式时出现的错误

问题描述:

声名了一个函数叫(其中Partition是自定义的数据结构):

void SortForPartition(Partition *partitionList, bool(*_SortFunc_)(Partition *a, Partition *b));


当我调用时:

SortForPartition(xPartitionList, [ = ] (Partition *a, Partition *b) {
    return a->Size > b->Size;
});


提示出错:

E0413 不存在从 "lambda []bool (Partition *a, Partition *b)->bool" 到 "bool (*)(Partition *a, Partition *b)" 的适当转换函数

那我应该怎么改呢?

用模板吧

template<class _Pr>
void SortForPartition(Partition* partitionList, _Pr _SortFunc_) {

}