std::is_function
时间: 2023-12-16 14:28:15 浏览: 160
有效使用Lambda表达式和std::function
`std::is_function`是C++11中的一个类型特征,用于检查给定类型是否为函数类型。需要注意的是,函数类型不包括`std::function`、lambda表达式以及具有重载`operator()`的类。以下是一个使用`std::is_function`的例子:
```cpp
#include <iostream>
#include <type_traits>
void foo() {}
int main() {
std::cout << std::boolalpha;
std::cout << std::is_function<decltype(foo)>::value << '\n'; // 输出:true
std::cout << std::is_function<int>::value << '\n'; // 输出:false
return 0;
}
```
上述代码中,`std::is_function<decltype(foo)>::value`返回`true`,因为`foo`是一个函数,而`std::is_function<int>::value`返回`false`,因为`int`不是一个函数类型。
阅读全文