#include <cstring>
#include <system_error>
#include <bits/functexcept.h>
#include <limits>
namespace
{
using std::string;
struct generic_error_category : public std::error_category
{
virtual const char*
name() const
{ return "generic"; }
virtual string
message(int i) const
{
return string(strerror(i));
}
};
struct system_error_category : public std::error_category
{
virtual const char*
name() const
{ return "system"; }
virtual string
message(int i) const
{
return string(strerror(i));
}
};
const generic_error_category generic_category_instance;
const system_error_category system_category_instance;
}
_GLIBCXX_BEGIN_NAMESPACE(std)
const error_category&
system_category() { return system_category_instance; }
const error_category&
generic_category() { return generic_category_instance; }
system_error::~system_error() throw() { }
error_condition
error_category::default_error_condition(int __i) const
{ return error_condition(__i, *this); }
bool
error_category::equivalent(int __i, const error_condition& __cond) const
{ return default_error_condition(__i) == __cond; }
bool
error_category::equivalent(const error_code& __code, int __i) const
{ return *this == __code.category() && __code.value() == __i; }
error_condition
error_code::default_error_condition() const
{ return category().default_error_condition(value()); }
_GLIBCXX_END_NAMESPACE