31 #ifndef PNGPP_ERROR_HPP_INCLUDED 
   32 #define PNGPP_ERROR_HPP_INCLUDED 
   35 #ifdef __STDC_LIB_EXT1__ 
   36 #define __STDC_WANT_LIB_EXT1__ 1 
   39 #define HAVE_STRERROR_S 1 
   41 #undef  HAVE_STRERROR_S 
   58         : 
public std::runtime_error
 
   64         explicit error(std::string 
const& message)
 
   65             : std::runtime_error(message)
 
   77         : 
public std::runtime_error
 
   88         explicit std_error(std::string 
const& message, 
int errnum = errno)
 
   96 #define ERRBUF_SIZE 512 
   97             char buf[ERRBUF_SIZE] = { 0 };
 
   99 #ifdef HAVE_STRERROR_S 
  100             strerror_s(buf, ERRBUF_SIZE, errnum);
 
  101             return std::string(buf);
 
  103 #if ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !_GNU_SOURCE) || (!__GLIBC__) 
  104             strerror_r(errnum, buf, ERRBUF_SIZE);
 
  105             return std::string(buf);
 
  108             return std::string(strerror_r(errnum, buf, ERRBUF_SIZE));
 
  118 #endif // PNGPP_ERROR_HPP_INCLUDED