The string view function _Starts_with used to process cmd-line options is specific to MSVC. This usage makes the code not portable.
The correct approach is to write a wrapper function starts_with which reuses the platform specific function when compiled with MSVC, but use custom code for other compilers. The wrapper code should be active only in C++17 because C++20 already defines a [starts_with](https://en.cppreference.com/w/cpp/string/basic_string_view/starts_with) function.