如何测试天气是lambda
对象的天气?是否有一个用于测试它的type_trait谓词?它只想断言它是一个lambda
对象,则返回true,如果std :: function,函数指针或其他对象返回false。下面是测试代码:
#include <iostream>
#include <functional>
template <typename T,typename = typename std::enable_if_t<std::is_integral<T>::value>>
void do_stuff(T&& t) {
std::cout << "is integral\n";
}
template <typename T /* type of predicate do I need to use to match a lambda? */ >
void do_stuff(T&& t) {
std::cout << "is lambda\n";
}
int main(int argc, char **argv) {
int a = 10;
do_stuff(a);
/* what type of predicate do I need to use above? */
do_stuff([](){});
return 0;
}
答案 0 :(得分:0)
可以创建一个行为与lambda完全一样的类,并且没有必要将此类与lambda区别开。