The maxPointers value may need to be different for your system, but allocating many unique_ptrs causes this application to crash and burn. Removing the definition of s and the cin operation gives some more room for pointer allocation.
Using MSVC 2015.
So, why does it crash and how to avoid it?
Thanks.
#include <iostream>
#include <vector>
#include <string>
#include <memory>
using namespace std;
int main(int argn, const char*argv[])
{
    int maxPointers = 37900;
    vector<unique_ptr<string>> pointerHolder;
    for (int i = 0; i < maxPointers; i++)
    {
        pointerHolder.push_back(make_unique<string>("pointer " + i));
    }
    cout << "done creating "<< maxPointers << " pointers" << endl;
    string s;
    cin >> s;
    for (int i = 0; i < maxPointers; i++)
    {
        pointerHolder.at(i).release();
    }
    pointerHolder.clear();
    cout << "done releasing " << maxPointers << " pointers" << endl;
    return EXIT_SUCCESS;
}
 
    