ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/dclient/include/adt/unordered_erase.h
Revision: 1.1
Committed: Mon Oct 18 14:11:43 2010 UTC (13 years, 9 months ago) by sf-pippijn
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Log Message:
check and log but do not die when ncurses stuff fails

File Contents

# Content
1 #pragma once
2
3 template<typename T>
4 typename std::vector<T>::iterator
5 unordered_erase (std::vector<T> &vec, typename std::vector<T>::iterator iter)
6 {
7 size_t pos = iter - vec.begin ();
8 vec.at (pos) = vec.back ();
9 vec.pop_back ();
10 return vec.begin () + pos;
11 }
12
13 template<typename T>
14 typename std::vector<T>::iterator
15 unordered_erase (std::vector<T> &vec, typename std::vector<T>::size_type pos)
16 {
17 return unordered_erase (vec, vec.begin () + pos);
18 }
19
20 template<typename T>
21 typename std::vector<T>::iterator
22 unordered_erase (std::vector<T> &vec, typename std::vector<T>::const_reference element)
23 {
24 return unordered_erase (vec, &element - &vec.front ());
25 }