C++ boost::如何检查空值/未定义值
我有一个boost::any对象,我想检查它的类型C++ boost::如何检查空值/未定义值,c++,boost,types,null,boost-any,C++,Boost,Types,Null,Boost Any,我有一个boost::any对象,我想检查它的类型 typedef boost::any Value; Value a = 12; if(a.type() == typeid(int)) { std::cout << boost::any_cast<int>(a) << std::endl; } typedef boost::任意值; a值=12; 如果(a.type()==typeid(int)){ 如果没有值,std::cout将返回true
typedef boost::any Value;
Value a = 12;
if(a.type() == typeid(int)) {
std::cout << boost::any_cast<int>(a) << std::endl;
}
typedef boost::任意值;
a值=12;
如果(a.type()==typeid(int)){
如果没有值,std::cout将返回true
std::any has has_value()方法,我希望boost也有相同的方法。
Value b;
if(b is undefined) {
std::cout << "b is not defined" << std::endl;
}
#include "boost/any.hpp"
#include <iostream>
int main()
{
boost::any a = 42;
if (!a.empty())
std::cout << "a has a value\n";
boost::any b;
if (b.empty())
std::cout << "b does not have a value\n";
}
boost::any a = 42;
std::cout << std::boolalpha << (a.type() == typeid(int)) << std::endl; // true
boost::any b;
std::cout << std::boolalpha << (b.type() == typeid(void)) << std::endl; // true