
I'm just trying out enum rev4.3 with Borland 5.6.4 and it fails to compile. This is because of the 'not-found clause' in the parse method. Eg. for the example BOOST_ENUM(boolean, (False) (True) ) that generates: ... typedef boost::optional<boolean> optional; static optional parse(const char* str) { if(strcmp(str, "False") == 0) return optional(False); if(strcmp(str, "True") == 0) return optional(True); return false; } ... [taken from test/enum.cpp] my compiler complains that it can't convert 'bool' to 'boost::optional<boolean>' on the last return statement, and I would tend to agree with it! If I change the return to be: return optional(); Then it compiles. Is there a particular reason why this compiler complains about the conversion whereas the others are fine with it? Would you consider making this change to support this compiler? Richard