我只想boost::any_cast<T>
在类型any
没有隐式转换为T
. 无论隐式转换如何,如果any
is not的类型,正常行为似乎是抛出异常。T
例子:
boost::any a = 1;
boost::any_cast<int>(a); // This succeeds, and rightfully so
boost::any_cast<long>(a); // I don't want this to throw
boost::any_cast<Widget>(a); // I want this to throw
谁能告诉我是否有一种简单的方法来获得我想要的功能,或者更好地给我一个很好的理由来解释为什么现有的行为是这样的?