当涉及到"问题线"的"隐藏特征"时,没有C++的爱吗?想我会把它扔出去.C++的一些隐藏功能是什么?
我想知道是否有一种标准方法来获取任何给定lambda的参数的类型签名(即返回类型和类型)?
我问的原因是我一直想知道auto声明中的类型究竟是什么样的auto l =[](int x,int y)->int{return x+y;}.在其他用例中auto,对于较长的类型名称而言,它是一种便利和更短的替代方案.但是对于lambdas,是否有另一种方法来声明lambda变量?
我的理解是标准lambda只不过是一个函数对象,它是它自己的类型.因此,即使两个lambda具有相同的返回类型和参数类型,它们仍然是两个不同的,不相关的类/仿函数.但是有一种方法可以捕捉它们在类型签名方面相同的事实吗?
我认为我正在寻找的类型签名可能类似于std::function<>正确类型的对象.
更有用/涉及的问题是,如果可以提取类型签名,则可以编写一般包装函数将任何lambda函数转换std::function为相同类型签名的对象.