public member function
<system_error>
explicit operator bool() const noexcept;
Convert to bool
Returns whether the error code has a numerical value other than 0.
If it is zero (which is generally used to represent no error), the function returns false, otherwise it returns true.
Return value
true if the error's numerical value is not zero.
false otherwise.
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
// error_code::operator bool
#include <iostream> // std::cout
#include <cerrno> // errno
#include <system_error> // std::error_code, std::generic_category
#include <cmath> // std::pow
struct expnumber {
double value;
std::error_code error;
expnumber (double base, double exponent) {
value = std::pow(base,exponent);
if (errno) error.assign (errno,std::generic_category());
}
};
int main()
{
expnumber foo (3.0, 2.0), bar (3.0, 10e6);
std::cout << "foo: ";
if (!foo.error) std::cout << foo.value << '\n';
else std::cout << "Error: " << foo.error.message() << '\n';
std::cout << "bar: ";
if (!bar.error) std::cout << bar.value << '\n';
else std::cout << "Error: " << bar.error.message() << '\n';
return 0;
}
|
Possible output:
foo: 9
bar: Error: Result too large