<type_traits>

类模板
<type_traits>

std::is_array

template <class T> struct is_array;
数组类型

识别 T 是否为数组类型的特性类。

它继承自 integral_constant,并根据T是数组类型。

请注意,array 类模板的实例化不被此函数视为数组类型,只有那些使用方括号([])内置语言语法声明的才算。

模板参数

T
一个类型。

成员类型

继承自 integral_constant
成员类型定义
value_typebool
类型true_type 或 false_type

成员常量

继承自 integral_constant
成员常量定义
truefalse

成员函数

继承自 integral_constant

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// is_array example
#include <iostream>
#include <array>
#include <string>
#include <type_traits>

int main() {
  std::cout << std::boolalpha;
  std::cout << "is_array:" << std::endl;
  std::cout << "int: " << std::is_array<int>::value << std::endl;
  std::cout << "int[3]: " << std::is_array<int[3]>::value << std::endl;
  std::cout << "array<int,3>: " << std::is_array<std::array<int,3>>::value << std::endl;
  std::cout << "string: " << std::is_array<std::string>::value << std::endl;
  std::cout << "string[3]: " << std::is_array<std::string[3]>::value << std::endl;
  return 0;
}

输出
is_array:
int: false
int[3]: true
array<int,3>: false
string: false
string[3]: true


另见