~ubuntu-branches/ubuntu/edgy/swig1.3/edgy

« back to all changes in this revision

Viewing changes to Lib/mzscheme/std_map.i

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-12-05 01:16:04 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20051205011604-ygx904it6413k3go
Tags: 1.3.27-1ubuntu1
Resynchronise with Debian again, for the new subversion packages.

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
//
6
6
// MzScheme implementation
7
7
 
8
 
%include std_common.i
9
 
%include exception.i
10
 
 
11
 
%exception std::map::__getitem__ {
12
 
    try {
13
 
        $action
14
 
    } catch (std::out_of_range& e) {
15
 
        SWIG_exception(SWIG_IndexError,const_cast<char*>(e.what()));
16
 
    }
17
 
}
18
 
 
19
 
%exception std::map::__delitem__ {
20
 
    try {
21
 
        $action
22
 
    } catch (std::out_of_range& e) {
23
 
        SWIG_exception(SWIG_IndexError,const_cast<char*>(e.what()));
24
 
    }
25
 
}
 
8
%include <std_common.i>
26
9
 
27
10
// ------------------------------------------------------------------------
28
11
// std::map
242
225
        bool empty() const;
243
226
        void clear();
244
227
        %extend {
245
 
            T& __getitem__(const K& key) {
 
228
            T& __getitem__(const K& key) throw (std::out_of_range) {
246
229
                std::map<K,T >::iterator i = self->find(key);
247
230
                if (i != self->end())
248
231
                    return i->second;
252
235
            void __setitem__(const K& key, const T& x) {
253
236
                (*self)[key] = x;
254
237
            }
255
 
            void __delitem__(const K& key) {
 
238
            void __delitem__(const K& key) throw (std::out_of_range) {
256
239
                std::map<K,T >::iterator i = self->find(key);
257
240
                if (i != self->end())
258
241
                    self->erase(i);
462
445
        bool empty() const;
463
446
        void clear();
464
447
        %extend {
465
 
            T& __getitem__(K key) {
 
448
            T& __getitem__(K key) throw (std::out_of_range) {
466
449
                std::map<K,T >::iterator i = self->find(key);
467
450
                if (i != self->end())
468
451
                    return i->second;
472
455
            void __setitem__(K key, const T& x) {
473
456
                (*self)[key] = x;
474
457
            }
475
 
            void __delitem__(K key) {
 
458
            void __delitem__(K key) throw (std::out_of_range) {
476
459
                std::map<K,T >::iterator i = self->find(key);
477
460
                if (i != self->end())
478
461
                    self->erase(i);
674
657
        bool empty() const;
675
658
        void clear();
676
659
        %extend {
677
 
            T __getitem__(const K& key) {
 
660
            T __getitem__(const K& key) throw (std::out_of_range) {
678
661
                std::map<K,T >::iterator i = self->find(key);
679
662
                if (i != self->end())
680
663
                    return i->second;
684
667
            void __setitem__(const K& key, T x) {
685
668
                (*self)[key] = x;
686
669
            }
687
 
            void __delitem__(const K& key) {
 
670
            void __delitem__(const K& key) throw (std::out_of_range) {
688
671
                std::map<K,T >::iterator i = self->find(key);
689
672
                if (i != self->end())
690
673
                    self->erase(i);
886
869
        bool empty() const;
887
870
        void clear();
888
871
        %extend {
889
 
            T __getitem__(K key) {
 
872
            T __getitem__(K key) throw (std::out_of_range) {
890
873
                std::map<K,T >::iterator i = self->find(key);
891
874
                if (i != self->end())
892
875
                    return i->second;
896
879
            void __setitem__(K key, T x) {
897
880
                (*self)[key] = x;
898
881
            }
899
 
            void __delitem__(K key) {
 
882
            void __delitem__(K key) throw (std::out_of_range) {
900
883
                std::map<K,T >::iterator i = self->find(key);
901
884
                if (i != self->end())
902
885
                    self->erase(i);