#include <string.h>
#include <array>
#include <cstring>
#include <sstream>
#include <stdexcept>
#include <string>
#include <locale.h>
 | 
| #define  | __FILENAME__   (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) | 
|   | 
| #define  | THROWERRNO(args) | 
|   | 
| #define  | THROW(args) | 
|   | 
| #define  | THROW_EX(ex,  args) | 
|   | 
| #define  | VW_ASSERT(condition,  args)   if (!(condition)) { THROW(args); } | 
|   | 
| #define  | EXPAND(x)   x | 
|   | 
| #define  | GET_MACRO(_1,  _2,  NAME, ...)   NAME | 
|   | 
| #define  | THROW_OR_RETURN(...)   EXPAND(GET_MACRO(__VA_ARGS__, THROW_OR_RETURN_NORMAL, THROW_OR_RETURN_VOID, UNUSED)(__VA_ARGS__)) | 
|   | 
| #define  | THROW_OR_RETURN_NORMAL(args,  retval) | 
|   | 
| #define  | THROW_OR_RETURN_VOID(args) | 
|   | 
| #define  | _UNUSED(x)   ((void)(x)) | 
|   | 
◆ __FILENAME__
      
        
          | #define __FILENAME__   (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) | 
        
      
 
 
◆ _UNUSED
      
        
          | #define _UNUSED | 
          ( | 
            | 
          x | ) | 
             ((void)(x)) | 
        
      
 
 
◆ EXPAND
◆ GET_MACRO
      
        
          | #define GET_MACRO | 
          ( | 
            | 
          _1,  | 
        
        
           | 
           | 
            | 
          _2,  | 
        
        
           | 
           | 
            | 
          NAME,  | 
        
        
           | 
           | 
            | 
          ...  | 
        
        
           | 
          ) | 
           |    NAME | 
        
      
 
 
◆ THROW
Value:{                                                              \
      std::ostringstream __msg;                                    \
      __msg << args;                                               \
    }
#define __FILENAME__
Definition: vw_exception.h:22
 
Definition: vw_exception.h:27
 
 
 
 
◆ THROW_EX
      
        
          | #define THROW_EX | 
          ( | 
            | 
          ex,  | 
        
        
           | 
           | 
            | 
          args  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Value:{                                                \
      std::ostringstream __msg;                      \
      __msg << args;                                 \
    }
#define __FILENAME__
Definition: vw_exception.h:22
 
 
 
 
◆ THROW_OR_RETURN
◆ THROW_OR_RETURN_NORMAL
      
        
          | #define THROW_OR_RETURN_NORMAL | 
          ( | 
            | 
          args,  | 
        
        
           | 
           | 
            | 
          retval  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Value:do                                                          \
    {                                                           \
      std::ostringstream __msgA;                                \
      __msgA << args;                                           \
    } while (0)
Definition: vw_exception.h:27
 
 
 
 
◆ THROW_OR_RETURN_VOID
      
        
          | #define THROW_OR_RETURN_VOID | 
          ( | 
            | 
          args | ) | 
           | 
        
      
 
Value:do                                                          \
    {                                                           \
      std::ostringstream __msgB;                                \
      __msgB << args;                                           \
    } while (0)
Definition: vw_exception.h:27
 
 
 
 
◆ THROWERRNO
      
        
          | #define THROWERRNO | 
          ( | 
            | 
          args | ) | 
           | 
        
      
 
Value:{                                                              \
        std::ostringstream __msg;                                    \
        __msg << args;                                               \
      }
#define __FILENAME__
Definition: vw_exception.h:22
 
std::string strerror_to_string(int error_number)
Definition: vw_exception.h:129
 
Definition: vw_exception.h:27
 
 
 
 
◆ VW_ASSERT
      
        
          | #define VW_ASSERT | 
          ( | 
            | 
          condition,  | 
        
        
           | 
           | 
            | 
          args  | 
        
        
           | 
          ) | 
           |    if (!(condition)) { THROW(args); } |