macros.hpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /******************************************************************************/
  2. /* 0MQ Internal Use */
  3. /******************************************************************************/
  4. #define LIBZMQ_UNUSED(object) (void) object
  5. #define LIBZMQ_DELETE(p_object) \
  6. { \
  7. delete p_object; \
  8. p_object = 0; \
  9. }
  10. /******************************************************************************/
  11. #if !defined ZMQ_NOEXCEPT
  12. #if defined ZMQ_HAVE_NOEXCEPT
  13. #define ZMQ_NOEXCEPT noexcept
  14. #else
  15. #define ZMQ_NOEXCEPT
  16. #endif
  17. #endif
  18. #if !defined ZMQ_OVERRIDE
  19. #if defined ZMQ_HAVE_NOEXCEPT
  20. #define ZMQ_OVERRIDE override
  21. #else
  22. #define ZMQ_OVERRIDE
  23. #endif
  24. #endif
  25. #if !defined ZMQ_FINAL
  26. #if defined ZMQ_HAVE_NOEXCEPT
  27. #define ZMQ_FINAL final
  28. #else
  29. #define ZMQ_FINAL
  30. #endif
  31. #endif
  32. #if !defined ZMQ_DEFAULT
  33. #if defined ZMQ_HAVE_NOEXCEPT
  34. #define ZMQ_DEFAULT = default;
  35. #else
  36. #define ZMQ_DEFAULT \
  37. { \
  38. }
  39. #endif
  40. #endif
  41. #if !defined ZMQ_NON_COPYABLE_NOR_MOVABLE
  42. #if defined ZMQ_HAVE_NOEXCEPT
  43. #define ZMQ_NON_COPYABLE_NOR_MOVABLE(classname) \
  44. public: \
  45. classname (const classname &) = delete; \
  46. classname &operator= (const classname &) = delete; \
  47. classname (classname &&) = delete; \
  48. classname &operator= (classname &&) = delete;
  49. #else
  50. #define ZMQ_NON_COPYABLE_NOR_MOVABLE(classname) \
  51. private: \
  52. classname (const classname &); \
  53. classname &operator= (const classname &);
  54. #endif
  55. #endif