• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1[/============================================================================
2  Boost.Geometry Index
3
4  Copyright (c) 2011-2012 Adam Wulkiewicz.
5
6  Use, modification and distribution is subject to the Boost Software License,
7  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
8  http://www.boost.org/LICENSE_1_0.txt)
9=============================================================================/]
10
11[section Exception safety]
12
13In order to be exception-safe the __rtree__ requires:
14
15* exception-safe copy constructor and copy assignment of the `__value__`.
16* exception-safe copy constructor and copy assignment of the `CoordinateType` used in the `Indexable`.
17* nonthrowing copy constructor of the `Translator`.
18* nonthrowing destructors of above types.
19
20[table
21[[Operation]                   [exception-safety]]
22[[`rtree()`]                   [ /nothrow/ ]]
23[[`rtree(Iterator, Iterator)`] [ *strong*  ]]
24[[`~rtree()`]                  [ /nothrow/ ]]
25[[][]]
26[[`rtree(rtree const&)`]       [ *strong*  ]]
27[[`operator=(rtree const&)`]   [ *strong*  ]]
28[[][]]
29[[`rtree(rtree &&)`]           [ /nothrow/ ]]
30[[`operator=(rtree &&)`]       [ /nothrow/ or *strong*
31[footnote /nothrow/ - if allocators are equal, *strong* - otherwise]]]
32[[`swap(rtree &)`]             [ /nothrow/ ]]
33[[][]]
34[[`insert(__value__)`]         [ not safe
35[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.]]]
36[[`insert(Iterator, Iterator)`][ not safe  ]]
37[[`insert(Range)`]             [ not safe  ]]
38[[`remove(__value__)`]         [ not safe  ]]
39[[`remove(Iterator, Iterator)`][ not safe  ]]
40[[`remove(Range)`]             [ not safe  ]]
41[[`clear()`]                   [ /nothrow/ ]]
42[[][]]
43[[`spatial_query(...)`]        [ *strong*  ]]
44[[`nearest_query(...)`]        [ *strong*  ]]
45[[`count(ValueOrIndexable)`]   [ /nothrow/ ]]
46[[][]]
47[[`size()`]                    [ /nothrow/ ]]
48[[`empty()`]                   [ /nothrow/ ]]
49[[`box()`]                     [ /nothrow/ or *strong*
50[footnote /nothrow/ - if `CoordinateType` has nonthrowing copy constructor, *strong* - otherwise]]]
51[[][]]
52[[`get_allocator()`]           [ /nothrow/ ]]
53[[`parameters()`]              [ /nothrow/ ]]
54[[`translator()`]              [ /nothrow/ ]]
55]
56
57[endsect] [/Exception safety/]
58