gpt4 book ai didi

c++ - 通过引用识别 Lambda

转载 作者:太空宇宙 更新时间:2023-11-04 12:54:09 25 4
gpt4 key购买 nike

我想测试一个类函数,它只接受一个 std::function 作为参数并将它传递给另一个类。在我的测试中,它被传递给模拟对象。

在我的测试文件中,我创建了一个 lambda 并将其提供给要测试的函数。

我现在的问题是,我如何检查我在模拟对象中收到的 lambda 是否仍然与我提供的一样。有办法吗?

最佳答案

检查 typeid 怎么样?


#include <functional>
#include <iostream>
#include <typeinfo>
#include <iomanip>

std::function<void()> foo(std::function<void()> x){
return x;
}

std::function<void()> bar(std::function<void()>){
return []{};
}

int main(){
int x = 5;
auto l = [x](){return x;};
std::cout << std::boolalpha;
std::cout << (foo(l).target_type()==typeid(l)) <<' ';
std::cout << (bar(l).target_type()==typeid(l));
}

关于c++ - 通过引用识别 Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47456242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com