On SO you said and I quote "remove is portable and unlink is unix specific" Well, I was recently looking at some source code that used std::unlink and is cross-platform. Unlink seems to work fine on Windows as long as the unlinking process doesn't have an open handle to the file. Why?
If you look on cppreference, you'll see that std::remove exists and std::unlink does not. That means all C++ implementations should support std::remove.
unlink is available on POSIX, and you'll be able to use it on all POSIX-compliant systems. Still, remove is still more available than unlink.