Eu tenho o seguinte código.
O que ele faz é remover o nome do arquivo de um caminho relativo.
Meu resultado esperado seria ".\png", o que eu obtenho é uma string vazia...
#include <iostream>
#include <filesystem>
#include <string>
//using namespace std;
namespace fs = std::filesystem;
#define VNAME(xx) (#xx)
int main() {
std::cout << "Hello World!" << "\n";
std::string fpath = ".\\png\\DUMMY-AB-42-L.PNG";
auto fs_fpath = fs::path(fpath);
auto fs_fpath_str = fs_fpath.string();
std::cout << VNAME(fpath) << ":=" << fpath << "\n";
std::cout << VNAME(fs_fpath_str) << ":=" << fs_fpath_str << "\n";
fs_fpath.remove_filename();
fs_fpath_str = fs_fpath.string();
std::cout << VNAME(fs_fpath_str) << ":=" << fs_fpath_str << "\n";
return 0;
}
a saída é:
Hello World!
fpath:=.\png\DUMMY-AB-42-L.PNG
fs_fpath_str:=.\png\DUMMY-AB-42-L.PNG
fs_fpath_str:=
A pergunta simples é: Bug ou Recurso?