jamolnng/argparse

MSVC and <filesystem>

Closed this issue · 2 comments

In VS 2019 (MSVC 14.2) the contents in <filesystem> has changed.

In older versions, it directly includes <experimental/filesystem> (if RC_INVOKED is not defined). Beginning from 14.2, when compiled using language version below C++17, it outputs a message and does not include <experimental/filesystem>. So there is no experimental namespace under std, causing a compile error.

Including <experimental/filesystem> before #include <argparse> solves the error. However, trying to include <experimental/filesystem> must have _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING defined, otherwise the compiler will complain. And yes, the header is deprecated but still works for now.

Related to #8

ya I think this settles removing the filesystem dependency

removed dependency 07e771d