указатель на std :: vector произвольного типа (или любой другой шаблонный класс)

скажем, я хочу иметь переменную-член для указателя на std :: vector, но я не хочу указывать, какой тип переменной он хранит. Я хочу получить доступ только к тем функциям, которые не зависят от его фактического универсального типа. это возможно с C ++? что-то вроде этого:

class Foo{
public:
    void setVec(std::vector* someVec){
        myVec = someVec;
    };
    int getSize(){
        return myVec.size();
    };
private:
    std::vector* myVec;
};


int main(){
    Foo foo;
    vector<int> vec1;
    vector<float> vec2;
    foo.setVec(&vec1);
    cout<<foo.getSize();
    foo.setVec(&vec2);
    cout<<foo.getSize();
}

примечание: я не хочу шаблонировать Foo и хочу использовать только один экземпляр Foo с векторами другого типа.

конечно - если бы я мог изменить вектор класса, то я мог бы создать базовый класс без шаблонов

class Ivector{
    virtual int size()=0;
};

а затем сделать

class vector<T> : public IVector...

наследовать от Ivector. но что мне делать, если я не могу изменить рассматриваемый класс, а шаблонный класс не имеет такого необработанного базового класса?

Спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос