
Beman Dawes wrote:
system-0.2.zip has been posted in the file vault. See the "system" directory at http://boost-consulting.com/vault/
This is a major upgrade, reflecting comments and suggestions from many Boosters, but in particular Chris Kohlhoff and Peter Dimov.
Important changes include:
The identifier is a interesting. I've got some similar code lying around. I think I might call it type_wrapper, type_generator, or something like that. identifier doesn't really communicate the purpose in my mind.
...snip details ...
* More extensive testing, with all tests passing for late-model GCC, CodeWarrior, Intel, and Microsoft compilers on Windows, and GCC on the Mac. Not tested yet on Linux.
Ok, I've tried compiling this on Linux. Couple problems. 1) Missing boost/cerrno.hpp in src/error_code.cpp #include <boost/cerrno.hpp> This file is not in the package. Commenting it out on the theory that it might have been replaced leads to: 2) Invalid char* to int conversion ~/devTools/boost_cvs/libs/system/build$ bjam ...found 225 targets... ...updating 14 targets... gcc-C++-action ../../../bin/boost/libs/system/build/libboost_system.a/gcc/debug/error_code.o ../src/error_code.cpp: In function ‘std::string<unnamed>::errno_md(const boost::system::error_code&)’: ../src/error_code.cpp:190: error: invalid conversion from ‘char*’ to ‘int’ ../src/error_code.cpp:190: error: ‘ERANGE’ was not declared in this scope ../src/error_code.cpp:197: error: ‘EINVAL’ was not declared in this scope ../src/error_code.cpp: In member function ‘int boost::system::error_code::to_errno() const’: ../src/error_code.cpp:274: error: ‘EOTHER’ was not declared in this scope ///that's the while condition here... char buf[64]; char * bp = buf; std::size_t sz = sizeof(buf); int result; while ( (result = strerror_r( ec.value(), bp, sz )) == ERANGE ) { if ( sz > sizeof(buf) ) std::free( bp ); sz *= 2; Jeff