~drizzle-trunk/drizzle/development

2192.5.5 by Olaf van der Spek
Fix EOL
1
/* Drizzle
2
 * Copyright (C) 2011 Olaf van der Spek
3
 * 
4
 * This program is free software: you can redistribute it and/or modify
5
 * it under the terms of the GNU General Public License as published by
6
 * the Free Software Foundation, either version 2 of the License, or
7
 * (at your option) any later version.
8
 * 
9
 * This program is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
 * GNU General Public License for more details.
13
 * 
14
 * You should have received a copy of the GNU General Public License
15
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
2198.3.1 by Olaf van der Spek
Add copyright
16
 */
17
2192.4.1 by Olaf van der Spek
Add find_ptr
18
#pragma once
19
20
template <class T, class U>
2281.4.14 by Olaf van der Spek
Support Boost Ptr Containers
21
typename T::value_type::second_type* find_ptr(T& c, U v)
2192.4.1 by Olaf van der Spek
Add find_ptr
22
{
23
	typename T::iterator i = c.find(v);
24
	return i == c.end() ? NULL : &i->second;
25
}
26
27
template <class T, class U>
2281.4.14 by Olaf van der Spek
Support Boost Ptr Containers
28
const typename T::value_type::second_type* find_ptr(const T& c, U v)
2192.4.1 by Olaf van der Spek
Add find_ptr
29
{
30
	typename T::const_iterator i = c.find(v);
31
	return i == c.end() ? NULL : &i->second;
32
}
2282.1.3 by Olaf van der Spek
Refactor Module Registry
33
34
template <class T, class U>
2281.4.14 by Olaf van der Spek
Support Boost Ptr Containers
35
typename T::value_type::second_type find_ptr2(T& c, U v)
2282.1.3 by Olaf van der Spek
Refactor Module Registry
36
{
2281.4.14 by Olaf van der Spek
Support Boost Ptr Containers
37
	typename T::value_type::second_type* i = find_ptr(c, v);
2282.1.3 by Olaf van der Spek
Refactor Module Registry
38
	return i ? *i : NULL;
39
}
40
41
template <class T, class U>
2281.4.14 by Olaf van der Spek
Support Boost Ptr Containers
42
const typename T::value_type::second_type find_ptr2(const T& c, U v)
2282.1.3 by Olaf van der Spek
Refactor Module Registry
43
{
2281.4.14 by Olaf van der Spek
Support Boost Ptr Containers
44
	const typename T::value_type::second_type* i = find_ptr(c, v);
2282.1.3 by Olaf van der Spek
Refactor Module Registry
45
	return i ? *i : NULL;
46
}