ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของเทมเพลต std::is_void ใน C++ STL
is_void เป็นเทมเพลตที่อยู่ภายใต้ไฟล์ส่วนหัว
ประเภท void ใน C++ คืออะไร
ในคำง่ายๆ void หมายถึง "ว่างเปล่า" หรือ "ไม่มีอะไร" เมื่อเราประกาศฟังก์ชันเป็นโมฆะ จะถือว่าฟังก์ชันนี้ไม่ส่งคืนสิ่งใด
นอกจากนี้เรายังประกาศตัวชี้เป็นโมฆะซึ่งควรจะปล่อยไว้โดยไม่ระบุ อย่างไรก็ตาม จะต้องอ้างอิงถึงตัวแปรอื่นในประเภทอื่น ก่อนที่ตัวชี้จะถูกยกเลิกการอ้างอิง พวกเขาสามารถชี้ไปที่วัตถุใด ๆ ก็ได้โดยไม่คำนึงถึงประเภทของวัตถุ ดังนั้นจึงมีประโยชน์มากสำหรับโปรแกรมเมอร์
ไวยากรณ์
template <class T>is_void;
พารามิเตอร์
เทมเพลตสามารถมีได้เฉพาะพารามิเตอร์ประเภท T และตรวจสอบว่า T เป็นประเภทโมฆะหรือไม่
คืนค่า
ส่งคืนค่าบูลีนเป็น true หากประเภทที่กำหนดเป็นประเภท void และ false หากประเภทที่กำหนดไม่ใช่ประเภท void
ตัวอย่าง
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