path::has_parent_path - cpprefjp C++日本語リファレンス
パスにルートパスのみが含まれていれば、ルートパスの親はルートパスと見なされて
true
が返る
ということでした。
c++ - How can a std::filesystem root path have itself as a parent? - Stack Overflow
has_relative_pathはパスにルートパスのみが含まれていれば、falseが返る
ので、
fs::path path(R"(/Users/Public/Documents)"); while (path.has_relative_path()) { std::cout << path.stem() << std::endl; path = path.parent_path(); }
なら良さそう。何か書く前にリファレンスを読みましょう。