ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของเทมเพลต std::is_const ใน C++ STL
เทมเพลต is_const ใน C++ ใช้เพื่อตรวจสอบว่าประเภทที่กำหนดเป็นประเภทที่ผ่านการรับรองหรือไม่
ประเภทที่มีคุณสมบัติเป็น const คืออะไร
เราเรียกประเภทว่าเป็นคอนเทนต์ที่มีคุณสมบัติเมื่อค่าของประเภทเป็นค่าคงที่ ประเภทข้อมูลคงที่เป็นประเภทที่เมื่อกำหนดค่าเริ่มต้นแล้วจะไม่สามารถเปลี่ยนแปลงหรือเปลี่ยนแปลงได้ตลอดทั้งโปรแกรม
ไวยากรณ์
template <class T> is_const;
พารามิเตอร์
เทมเพลตสามารถมีได้เฉพาะพารามิเตอร์ประเภท T และตรวจสอบว่าประเภทที่กำหนดเป็น constqualifier หรือไม่
คืนค่า
ส่งคืนค่าบูลีนเป็น true หากประเภทที่กำหนดเป็น const-qualifier และ false หากประเภทที่กำหนดไม่ใช่ const-qualifier
ตัวอย่าง
Input: is_const<const int>::value; Output: True Input: is_const<int>::value; Output: False
ตัวอย่าง
#include <iostream> #include <type_traits> using namespace std; int main() { cout << boolalpha; cout << "checking for is_const template: "; cout << "\nInt : "<<is_const<int>::value; cout << "\nConst int : "<< is_const<const int>::value; cout << "\nConst int& : "<< is_const<const int&>::value; return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
checking for is_const template: Int : false Const int : true Const int& : false
ตัวอย่าง
#include <iostream> #include <type_traits> using namespace std; int main() { cout << boolalpha; cout << "checking for is_const template: "; cout << "\nFloat : "<<is_const<float>::value; cout << "\nChar : "<<is_const<char>::value; cout << "\nFloat *: "<<is_const<float*>::value; cout << "\nChar *: "<<is_const<char*>::value; cout << "\nConst int* : "<< is_const<const int*>::value; cout << "\nint* const : "<< is_const<int* const>::value; return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
checking for is_const template: Float : false Char: false Float *: false Char *: fakse Const int* : false int* const: true