C ++中的is_void模板

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

is_void是<type_traits>头文件下的模板。该模板用于检查给定类型T是否为空类型。

什么是C ++中的void类型?

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

我们还声明了void指针,这些指针应该未指定。但是,在取消引用指针之前,必须将它们引用到其他类型的另一个变量。它们可以指向任何对象,而不管其类型如何,因此对于程序员来说非常有用。

语法

template <class T>is_void;

参数

模板只能具有类型T的参数,并检查T是否为空类型。

返回值

它返回一个布尔值,如果给定类型为空类型,则返回true,如果给定类型非空类型,则返回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