C++ std::is_function 模板及示例

C++ std::is_function 模板及示例

C++ STL中的 std::is_function 用于检查给定类型T是否为函数。它返回布尔值 true 或 false。 以下是相同的语法:

头文件:

include < type_traits >

语法:

template 
  **<** class T **>** 
  struct is_function;

参数: 该模板 std::is_function 接受一个参数T(特征类)来检查T是否是函数。

返回值:

  • 如果T是函数类型,则为True。
  • 如果T不是函数类型,则为False。

下面的程序演示了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

Reference:
http://www.cplusplus.com/reference/type_traits/is_function/

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程