ssize_t.qbk 1.1 KB

123456789101112131415161718192021222324252627
  1. [section boost/python/ssize_t.hpp]
  2. [section Introduction]
  3. Python 2.5 introduces a new `Py_ssize_t` typedef and two related macros ([@http://www.python.org/dev/peps/pep-0353/ PEP 353]). The <boost/python/ssize_t.hpp> header imports these definitions into the `boost::python` namespace as `ssize_t`, `ssize_t_max`, and `ssize_t_min`. Appropriate definitions are provided for backward compatibility with previous Python versions.
  4. [endsect]
  5. [section Typedefs]
  6. Imports `Py_ssize_t` into the `boost::python` namespace if available, or provides an appropriate typedef for backward compatibility:
  7. ``
  8. #if PY_VERSION_HEX >= 0x02050000
  9. typedef Py_ssize_t ssize_t;
  10. #else
  11. typedef int ssize_t;
  12. #endif
  13. ``
  14. [endsect]
  15. [section Constants]
  16. Imports `PY_SSIZE_T_MAX` and `PY_SSIZE_T_MIN` as constants into the `boost::python` namespace if available, or provides appropriate constants for backward compatibility:
  17. ``
  18. #if PY_VERSION_HEX >= 0x02050000
  19. ssize_t const ssize_t_max = PY_SSIZE_T_MAX;
  20. ssize_t const ssize_t_min = PY_SSIZE_T_MIN;
  21. #else
  22. ssize_t const ssize_t_max = INT_MAX;
  23. ssize_t const ssize_t_min = INT_MIN;
  24. #endif
  25. ``
  26. [endsect]
  27. [endsect]