Какая альтернатива std :: atexit в C ++ - PullRequest
1 голос
/ 28 января 2020

Я хотел удалить файл, когда программа закрыта, но не закончилась. Я пытался сделать это с помощью функции std :: atexit, но ее параметр не может быть указателем на функцию, если это функция члена класса. Поэтому мне было интересно, есть ли простая альтернатива?

class User 
{
    std::experimental::filesystem::path file_path;
    std::experimental::filesystem::path & get_file_path();
    void clean_file_path();
    void (User::*x)();
}
int main()
{
    std::experimental::filesystem::path p = user.get_file_path();
    user.x = & User::clean_file_path;
    std::ofstream output(p, std::ios::binary | std::ios::trunc);
    std::atexit(user.x);
}
...