OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 26 matching lines...) Expand all Loading... |
37 // having its destructor called. This implementation internally | 37 // having its destructor called. This implementation internally |
38 // allocates storage in large chunks and does not call the destructor | 38 // allocates storage in large chunks and does not call the destructor |
39 // on each object. | 39 // on each object. |
40 // | 40 // |
41 // Type T must supply a default constructor, a copy constructor, and | 41 // Type T must supply a default constructor, a copy constructor, and |
42 // the "<" and "==" operators. | 42 // the "<" and "==" operators. |
43 // | 43 // |
44 // In debug mode, printing of the data contained in the tree is | 44 // In debug mode, printing of the data contained in the tree is |
45 // enabled. This requires the template specialization to be available: | 45 // enabled. This requires the template specialization to be available: |
46 // | 46 // |
47 // template<> struct blink::ValueToString<T> { | 47 // template<> struct ValueToString<T> { |
48 // static String string(const T& t); | 48 // static String string(const T& t); |
49 // }; | 49 // }; |
50 // | 50 // |
51 // Note that when complex types are stored in this red/black tree, it | 51 // Note that when complex types are stored in this red/black tree, it |
52 // is possible that single invocations of the "<" and "==" operators | 52 // is possible that single invocations of the "<" and "==" operators |
53 // will be insufficient to describe the ordering of elements in the | 53 // will be insufficient to describe the ordering of elements in the |
54 // tree during queries. As a concrete example, consider the case where | 54 // tree during queries. As a concrete example, consider the case where |
55 // intervals are stored in the tree sorted by low endpoint. The "<" | 55 // intervals are stored in the tree sorted by low endpoint. The "<" |
56 // operator on the Interval class only compares the low endpoint, but | 56 // operator on the Interval class only compares the low endpoint, but |
57 // the "==" operator takes into account the high endpoint as well. | 57 // the "==" operator takes into account the high endpoint as well. |
(...skipping 761 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
819 Node* m_root; | 819 Node* m_root; |
820 bool m_needsFullOrderingComparisons; | 820 bool m_needsFullOrderingComparisons; |
821 #ifndef NDEBUG | 821 #ifndef NDEBUG |
822 bool m_verboseDebugging; | 822 bool m_verboseDebugging; |
823 #endif | 823 #endif |
824 }; | 824 }; |
825 | 825 |
826 } // namespace blink | 826 } // namespace blink |
827 | 827 |
828 #endif // PODRedBlackTree_h | 828 #endif // PODRedBlackTree_h |
OLD | NEW |