在64位机器上
sizeof(size_t) = 8
sizeof(unsigned int) = 4
size_t a = 4;
boost::any b = (a);
boost::any_cast<unsigned int>(b);
会抛出 异常信息
Detail: boost::bad_any_cast: failed conversion using boost::any_cast
sizeof(size_t) = 8
sizeof(unsigned int) = 4
size_t a = 4;
boost::any b = (a);
boost::any_cast<unsigned int>(b);
会抛出 异常信息
Detail: boost::bad_any_cast: failed conversion using boost::any_cast
本文探讨了在64位系统中使用Boost库时遇到的一个具体问题:当尝试将size_t类型的变量转换为unsigned int类型并存储在Boost.Any对象中时引发的异常。文章详细分析了不同数据类型在64位系统上的大小差异,并解释了这种类型转换失败的原因。
1984

被折叠的 条评论
为什么被折叠?



