在本文中,我们将讨论C ++ STL中std::is_void模板的工作,语法和示例。
is_void是<type_traits>头文件下的模板。该模板用于检查给定类型T是否为空类型。
简单来说,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