On 15 January 2016 at 17:52, James Greenhalgh wrote:
> vbrfix_0.24-7
>
> [ Source error, not sure how this ever worked! ]
>
> In file included from vbrfix.h:22:0,
> from vbrfix.cpp:17:
> wputil.h: In static member function 'static bool wfile::copyFile(const
> char*, const char*, bool)':
> wputil.h:202:28: error: cannot convert 'std::basic_ostream<char>' to
> 'bool' in return
> return out << in.rdbuf();
In C++03 iostreams have an implicit conversion to void*, which can
then be implicitly converted to bool.
In C++11 they have an explicit conversion to bool, so the code needs
to be changed to do the conversion explicitly:
return bool(out << in.rdbuf());
or
return static_cast<bool>(out << in.rdbuf());
if (out << in.rdbuf())
return true;
return false;
or
return (out << in.rdbuf()) ? true : false;
or some similar variation.