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
广告