#include <vector>
template<class T>
class AbstractRepository
{
public:
    virtual std::vector<T> getAll()=0;
};

class Repository : public AbstractRepository< int >
{
public:
    std::vector<int> getAll() { return std::vector<int>(); }
};

int main() {
    Repository r;
    auto x = r.getAll();
}