exception_safety.qbk 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. [/============================================================================
  2. Boost.Geometry Index
  3. Copyright (c) 2011-2012 Adam Wulkiewicz.
  4. Use, modification and distribution is subject to the Boost Software License,
  5. Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  6. http://www.boost.org/LICENSE_1_0.txt)
  7. =============================================================================/]
  8. [section Exception safety]
  9. In order to be exception-safe the __rtree__ requires:
  10. * exception-safe copy constructor and copy assignment of the `__value__`.
  11. * exception-safe copy constructor and copy assignment of the `CoordinateType` used in the `Indexable`.
  12. * nonthrowing copy constructor of the `Translator`.
  13. * nonthrowing destructors of above types.
  14. [table
  15. [[Operation] [exception-safety]]
  16. [[`rtree()`] [ /nothrow/ ]]
  17. [[`rtree(Iterator, Iterator)`] [ *strong* ]]
  18. [[`~rtree()`] [ /nothrow/ ]]
  19. [[][]]
  20. [[`rtree(rtree const&)`] [ *strong* ]]
  21. [[`operator=(rtree const&)`] [ *strong* ]]
  22. [[][]]
  23. [[`rtree(rtree &&)`] [ /nothrow/ ]]
  24. [[`operator=(rtree &&)`] [ /nothrow/ or *strong*
  25. [footnote /nothrow/ - if allocators are equal, *strong* - otherwise]]]
  26. [[`swap(rtree &)`] [ /nothrow/ ]]
  27. [[][]]
  28. [[`insert(__value__)`] [ not safe
  29. [footnote If this operation throws, the R-tree may be left in an inconsistent state, elements must not be inserted or removed, methods may return invalid data.]]]
  30. [[`insert(Iterator, Iterator)`][ not safe ]]
  31. [[`insert(Range)`] [ not safe ]]
  32. [[`remove(__value__)`] [ not safe ]]
  33. [[`remove(Iterator, Iterator)`][ not safe ]]
  34. [[`remove(Range)`] [ not safe ]]
  35. [[`clear()`] [ /nothrow/ ]]
  36. [[][]]
  37. [[`spatial_query(...)`] [ *strong* ]]
  38. [[`nearest_query(...)`] [ *strong* ]]
  39. [[`count(ValueOrIndexable)`] [ /nothrow/ ]]
  40. [[][]]
  41. [[`size()`] [ /nothrow/ ]]
  42. [[`empty()`] [ /nothrow/ ]]
  43. [[`box()`] [ /nothrow/ or *strong*
  44. [footnote /nothrow/ - if `CoordinateType` has nonthrowing copy constructor, *strong* - otherwise]]]
  45. [[][]]
  46. [[`get_allocator()`] [ /nothrow/ ]]
  47. [[`parameters()`] [ /nothrow/ ]]
  48. [[`translator()`] [ /nothrow/ ]]
  49. ]
  50. [endsect] [/Exception safety/]