No need to explicitly call close on the ifstream