C++ 中的 is_void 模板


在本文中,我们将讨论 C++ STL 中 std::is_void 模板的工作原理、语法和示例。

is_void 是一个模板,包含在 <type_traits> 头文件中。此模板用于检查给定的类型 T 是否为 void 类型。

在 C++ 中,什么是 void 类型?

简单来说,void 表示“空”或“无”。当我们将一个函数声明为 void 时,则假定此函数不会返回任何内容。

我们还声明 void 指针,这些指针应该保持不指定。但是,在解除对指针的引用之前,它们必须引用其他类型的另一个变量。它们可以指向任意对象,而不管它们的类型如何,因此这对程序员非常有用。

语法

template <class T>is_void;

参数

模板只能有一个 T 类型的参数,并检查 T 是否是 void 类型。

返回值

它返回一个布尔值,如果给定的类型是 void 类型,则为 true,如果给定的类型不是 void 类型,则为 false。

例子

Input: is_void<void>::value;
Output: True

Input: is_void<int>::value;
Output: False

例子

 在线演示

#include <iostream>
#include <type_traits>
using namespace std;
int main() {
   cout << boolalpha;
   cout << "checking for is_void:";
   cout << "\nvoid:" << is_void<void>::value;
   cout << "\nconst void:" << is_void<const void>::value;
   cout << "\nint:" << is_void<int>::value;
   cout << "\nchar:" << is_void<char>::value;
   return 0;
}

输出

如果我们运行上述代码,它将生成以下输出 −

checking for is_void:
Void: true
Const void: true
Int: false
Char: false

例子

 在线演示

#include <iostream>
#include <type_traits>
using namespace std;
int main() {
   cout << boolalpha;
   cout << "checking for is_void:";
   cout << "\nDouble:" << is_void<double>::value;
   cout << "\nFloat:" << is_void<float>::value;
   cout << "\nvolatile void:" << is_void<volatile void>::value;
   cout << "\nconst volatile void:" << is_void<const volatile void>::value;
   return 0;
}

输出

如果我们运行上述代码,它将生成以下输出 −

checking for is_void:
Double: false
Float: false
Volatile void: true
Cost volatile void: true

更新于: 2020 年 3 月 23 日

213 次浏览

开启你的 事业

完成课程获得认证

开始
广告