C++ STL的std::is_function用于检查给定的类型T是否为function。它返回布尔值true或false。以下是相同的语法:
头文件:
#include<type_traits>
用法:
template <class T> struct is_function;
参数:模板std::is_function接受单个参数T(Trait类)以检查T是否为函数。
返回值:
- 是:如果T是函数类型。
- False:如果T不是函数类型。
以下示例程序旨在说明C++ STL中的std::is_function模板:
程序1:
// C++ program to illustrate
// is_function template
#include <bits/stdc++.h>
#include <type_traits>
using namespace std;
struct GeeksforGeeks {
int func() const&;
};
template <typename>
struct Computer {
};
template <class A, class B>
struct Computer<B A::*> {
using member_type = B;
};
int GFG();
int main()
{
cout << boolalpha;
cout << is_function<GeeksforGeeks>::value
<< endl;
cout << is_function<int(int)>::value
<< endl;
cout << is_function<decltype(GFG)>::value
<< endl;
cout << is_function<int>::value
<< endl;
using A = Computer<decltype(
&GeeksforGeeks::func)>::member_type;
cout << is_function<A>::value
<< endl;
return 0;
}
输出:
false true true false true
程序2:
// C++ program to illustrate
// is_function template
#include <bits/stdc++.h>
#include <type_traits>
using namespace std;
struct GeeksforGeeks {
int func() const&;
};
template <typename>
struct Computer {
};
template <class A, class B>
struct Computer<B A::*> {
using member_type = B;
};
int GFG();
int main()
{
cout << boolalpha;
cout << is_function<int(int)>::value
<< endl;
cout << is_function<GeeksforGeeks>::value
<< endl;
cout << is_function<int>::value
<< endl;
cout << is_function<decltype(GFG)>::value
<< endl;
using A = Computer<decltype(
&GeeksforGeeks::func)>::member_type;
cout << is_function<A>::value
<< endl;
return 0;
}
输出:
true false false true true
参考: http://www.cplusplus.com/reference/type_traits/is_function/
相关用法
- C++ std::is_assignable模板用法及代码示例
- C++ std::is_convertible模板用法及代码示例
- C++ std::is_constructible模板用法及代码示例
- C++ std::is_base_of模板用法及代码示例
- C++ std::is_member_object_pointer模板用法及代码示例
- C++ std::is_trivially_copyable模板用法及代码示例
- C++ std::is_same模板用法及代码示例
- C++ std::is_member_function_pointer模板用法及代码示例
- C++ is_rvalue_reference用法及代码示例
- C++ is_fundamental用法及代码示例
注:本文由纯净天空筛选整理自bansal_rtk_大神的英文原创作品 std::is_function template in C++ with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。