类模板
<functional>

std::is_placeholder

template <class T> struct is_placeholder;
Is placeholder
用于标识 T 是否是 bind placeholder 的特征类。

如果 T 是 bind placeholder 的类型,则它继承自 integral_constant<int,I>,其中 I 是占位符的序号(_11_22,以此类推);否则,它继承自 integral_constant<int,0>
它定义为继承自 integral_constant<int,I>,其中 I 是占位符的序号(_11_22,以此类推),如果 T 是 bind placeholder 的类型,或者零(0)如果不是。

bind 函数使用此特征类来确定其每个参数的类型是否为占位符。用户可以专门化此模板以处理要用作占位符的类型。

模板参数

T
一个类型。

成员类型

继承自 integral_constant
成员类型定义
value_typeint
类型它所继承的 integral_constant 类型。
成员类型定义
value_typeint
类型它所继承的 integral_constant 类型,或者具有相同特性的类型。

成员常量

成员常量定义
如果 T 是 placeholder 的类型:占位符的序号(_11_22,以此类推)。
否则:0

成员函数

成员常量定义
operator int返回成员常量 value

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
// is_placeholder example
#include <iostream>     // std::cout, std::boolalpha
#include <functional>   // std::is_placeholder, std::placeholders

int main () {
  using namespace std::placeholders;  // introduces _1

  std::cout << std::is_placeholder<decltype(_1)>::value << '\n';
  std::cout << std::is_placeholder<decltype(_2)>::value << '\n';
  std::cout << std::is_placeholder<int>::value << '\n';

  return 0;
}

输出
1
2
0


另见