#include <vector>
#include <memory>

template<class T, class Alloc = std::allocator<T>>
std::vector<T, Alloc> make_vector(Alloc const& al = Alloc()){
  std::vector<T, Alloc> v(al);
  // ...
  return v;
}

int main(){
  auto v1 = make_vector<int>();
  auto v2 = make_vector<int, std::allocator<int>>();
  std::allocator<int> al;
  auto v3 = make_vector<int, std::allocator<int>>(al);
}