Our program just installed version 69 of Boost and I am running into a
compile issue that I am not sure how to resolve. Following is the
associated section of C++ code that I am unable to figure out the changes
to get it to compile.
int filedes[2];
if ( pipe(filedes) == 0)
{
using namespace boost::iostreams;
stream results(filedes[0], close_handle);
....
....
}
The last provided line of code does not compile with a no matching function
for call to 'boost::iostreams::file_descriptor::file_descriptor(int&,
file_descriptor_flags&)' error.
I noticed in the version of the boost file_descriptor.hpp loaded and being
used the following exists:
#ifdef BOOST_IOSTREAMS_WINDOWS
file_descriptor(int fd, file_descriptor_flags);
#endif
The associated application attempting to be built and deployed is only for
servers running the Linux operation system so BOOST_IOSTREAMS_WINDOWS is
not enabled, causing the above constructor not to be available.
The other constructor available is file_descriptor(handle_type fd,
file_descriptor_flags);
but I can not figure out how to generate a detail::file_handle from the
available int file descriptor generated from above pipe command.
Will it cause any issues enabling BOOST_IOSTREAMS_WINDOWS so the required
constructor will be available?
Thanks ahead of time for your time and feedback.
Russell West