所以我有一个继承自的基类std::vector
:
template<typename T>
class Base : public std::vector<T>
{
std::vector<T> vect_;
public:
Base() : std::vector<T>({1, 2, 3, 4, 5}){}
const std::vector<T> getContainer() const { return vect_;}
};
我已经将多个对象存储在一个容器中boost::any
当我经历时,我想遍历继承自std::vector
.
我做了以下事情(有效)
Base<int> a;
boost::any c = static_cast<decltype(a.getContainer())>(a);
try
{
for (auto elem : boost::any_cast<std::vector<int>>(c))
std::cout << elem << std::endl;
}
catch (boost::bad_any_cast)
{}
我想知道是否还有其他方法可以做这种事情,因为您似乎无法boost::any_cast
进入父类。