У меня есть класс, который выглядит следующим образом
class Foo
{
public:
template<class T>
A(T * ptr) { ptr_ = reinterpret_cast<void*>(ptr_);}
template<class T>
T * get() { return reinterpret_cast<T*>(ptr_);}
private:
void * ptr_;
};
Во время компиляции я точно знаю, какие элементы будут в моем массиве.Есть ли способ, которым я могу аннотировать этот класс так, чтобы массив указателей Foo знал, какой тип он должен получить?
В основном я хочу вызвать Foo[i]<T>->apply()
и не должен искать тип во время выполнения, так как ондолжен знать во время компиляции, что это за объект.
PS Пожалуйста, не предлагайте виртуальные функции, я знаю, что они являются допустимым решением, но я хочу знать, возможно ли это, потому что у меня есть вся информация о типахво время компиляции.