Remove an observer from the list if it is in the list.
| 127 | |
| 128 | // Remove an observer from the list if it is in the list. |
| 129 | void RemoveObserver(ObserverType* obs) { |
| 130 | typename ListType::iterator it = |
| 131 | std::find(observers_.begin(), observers_.end(), obs); |
| 132 | if (it != observers_.end()) { |
| 133 | if (notify_depth_) { |
| 134 | *it = 0; |
| 135 | } else { |
| 136 | observers_.erase(it); |
| 137 | } |
| 138 | } |
| 139 | } |
| 140 | |
| 141 | bool HasObserver(ObserverType* observer) const { |
| 142 | for (size_t i = 0; i < observers_.size(); ++i) { |