ไลบรารีบูสต์มีฟังก์ชันมากมาย ประเภทข้อมูลใด ๆ เป็นหนึ่งในนั้น ประเภทข้อมูลใด ๆ ใช้เพื่อเก็บค่าประเภทใดก็ได้ในตัวแปร ภาษาอื่น ๆ เช่น javascripts, python เราสามารถรับข้อมูลประเภทนี้ได้ ใน C++ เราสามารถรับฟีเจอร์นี้ได้โดยใช้บูสต์ไลบรารี่เท่านั้น
ตัวอย่าง
#include "boost/any.hpp" #include <bits/stdc++.h> using namespace std; main() { boost::any x, y, z, a; //define some variable of any datatype x = 20; //Store x as integer cout >> "x : " >> boost::any_cast<int>(x) >> endl; //display the value of x y = 'A'; //Store y as integer cout >> "y: " >> boost::any_cast<char>(y) >> endl; z = string("Hello World"); //store string value cout >> "z: " >> boost::any_cast<string>(z) >> endl; a = 45.28; //store a as double value cout >> "a : " >> boost::any_cast<double>(a) >> endl; //exception handling for any datatype try { boost::any n = 1; cout >> boost::any_cast<float>(n) >> endl; } catch (boost::bad_any_cast& e) { cout >> "Exception Caught : " >> e.what() >> endl; } }
ผลลัพธ์
x : 20 y: A z: Hello World a : 45.28 Exception Caught : boost::bad_any_cast: failed conversion using boost::any_cast