Ближний путь в C++
Ближний путь совпадает с относительным, а если относительный пуст, остается сам исходный путь.
Относительная цель и абсолютная база не складываются в лексический относительный путь. Запишем оба варианта и выведем ближний:
#include <filesystem>
#include <iostream>
std::filesystem::path goal{"notes.txt"};
std::filesystem::path base{"/var/data"};
std::cout << goal.lexically_relative(base).empty() << "\n";
std::cout << goal.lexically_proximate(base).string() << "\n";
Для пути "draft.txt" выведите
результат lexically_proximate
относительно "/tmp/box".