aboutsummaryrefslogtreecommitdiff
path: root/Lib/php/std_map.i
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/php/std_map.i')
-rw-r--r--Lib/php/std_map.i16
1 files changed, 11 insertions, 5 deletions
diff --git a/Lib/php/std_map.i b/Lib/php/std_map.i
index 6d5e3db13..7c0157353 100644
--- a/Lib/php/std_map.i
+++ b/Lib/php/std_map.i
@@ -20,21 +20,27 @@
namespace std {
- template<class K, class T> class map {
+ template<class K, class T, class C = std::less<K> > class map {
// add typemaps here
public:
typedef size_t size_type;
typedef ptrdiff_t difference_type;
typedef K key_type;
typedef T mapped_type;
+ typedef std::pair< const K, T > value_type;
+ typedef value_type* pointer;
+ typedef const value_type* const_pointer;
+ typedef value_type& reference;
+ typedef const value_type& const_reference;
+
map();
- map(const map<K,T> &);
+ map(const map& other);
unsigned int size() const;
void clear();
%extend {
const T& get(const K& key) throw (std::out_of_range) {
- std::map<K,T >::iterator i = self->find(key);
+ std::map< K, T, C >::iterator i = self->find(key);
if (i != self->end())
return i->second;
else
@@ -44,14 +50,14 @@ namespace std {
(*self)[key] = x;
}
void del(const K& key) throw (std::out_of_range) {
- std::map<K,T >::iterator i = self->find(key);
+ std::map< K, T, C >::iterator i = self->find(key);
if (i != self->end())
self->erase(i);
else
throw std::out_of_range("key not found");
}
bool has_key(const K& key) {
- std::map<K,T >::iterator i = self->find(key);
+ std::map< K, T, C >::iterator i = self->find(key);
return i != self->end();
}
bool is_empty() const {