
When I run the following program (under Windows XP, Visual C++ 8), the BOOST_ASSERT statement fails (If you want to run it, make sure there's a file named temp.cpp in the same folder): #include <boost/iostreams/device/mapped_file.hpp> #include <iostream> int main() { try { boost::iostreams::mapped_file file; file.open("temp.cpp", std::ios_base::in); file.close(); BOOST_ASSERT(!file.is_open()); } catch(const std::exception &exc) { std::cout << exc.what() << std::endl; } return 0; } I think the problem is in mapped_file.cpp, line 124: bool mapped_file_source::is_open() const { return !!pimpl_ && pimpl_->handle_ != 0; } Since mapped_file_impl::close() sets handle_ to INVALID_HANDLE_VALUE (mapped_file.cpp, line 65), I would guess that is_open() should say pimpl_->handle_ != INVALID_HANDLE_VALUE. Dave Odell dmo2118@gmail.com
participants (1)
-
Dave Odell