ファイナルをクローズした時にエラーとなるのですが、これは正しいのでしょうか。
やはり、クローズはデストラクタに任せた方がいいのでしょうか。

#include <iostream>
#include <fstream>
int main() {
constexpr auto path = "tmp.txt";//なんでもいいです
std::ifstream ifs(path);
if(ifs.fail()){
std::cerr << "File open error: " << path << std::endl;
return -1;
}
std::string buf;
while(std::getline(ifs, buf))
std::cout << buf << std::endl;
ifs.close(); //←これ
if(ifs.fail()){
std::cerr << "File close error: " << path << std::endl;
return -1;
}
return 0;
}