Produced by Araxis Merge on Thu Nov 17 16:01:41 2011 UTC. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a reasonably standards compliant browser such as the latest version of Firefox or Internet Explorer. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
# | Location | File | Last Modified |
---|---|---|---|
1 | D:\P\boost_1_47_0\boost\fusion\container\list | cons.hpp | Thu Nov 10 22:04:08 2011 UTC |
2 | D:\P\boost_1_47_0_native\boost\fusion\container\list | cons.hpp | Sat Jul 3 21:10:58 2010 UTC |
Description | Between Files 1 and 2 |
|
---|---|---|
Text Blocks | Lines | |
Unchanged | 5 | 278 |
Changed | 4 | 8 |
Inserted | 0 | 0 |
Removed | 0 | 0 |
Whitespace | All differences in whitespace within lines are ignored |
---|---|
Character case | Differences in character case are significant |
Line endings | Differences in line endings (CR and LF characters) are ignored |
CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
1 | /*======== ========== ========== ========== ========== ========== ========== ========= | 1 | /*======== ========== ========== ========== ========== ========== ========== ========= | |||
2 | Copyri ght (c) 20 05 Joel de Guzman | 2 | Copyri ght (c) 20 05 Joel de Guzman | |||
3 | Copyri ght (c) 20 05 Eric Ni ebler | 3 | Copyri ght (c) 20 05 Eric Ni ebler | |||
4 | 4 | |||||
5 | Distri buted unde r the Boos t Software License, Version 1. 0. (See ac companying | 5 | Distri buted unde r the Boos t Software License, Version 1. 0. (See ac companying | |||
6 | file L ICENSE_1_0 .txt or co py at http ://www.boo st.org/LIC ENSE_1_0.t xt) | 6 | file L ICENSE_1_0 .txt or co py at http ://www.boo st.org/LIC ENSE_1_0.t xt) | |||
7 | ========== ========== ========== ========== ========== ========== ========== ========*/ | 7 | ========== ========== ========== ========== ========== ========== ========== ========*/ | |||
8 | #if !defin ed(FUSION_ CONS_07172 005_0843) | 8 | #if !defin ed(FUSION_ CONS_07172 005_0843) | |||
9 | #define FU SION_CONS_ 07172005_0 843 | 9 | #define FU SION_CONS_ 07172005_0 843 | |||
10 | 10 | |||||
11 | #include < boost/fusi on/support /detail/ac cess.hpp> | 11 | #include < boost/fusi on/support /detail/ac cess.hpp> | |||
12 | #include < boost/fusi on/sequenc e/intrinsi c/begin.hp p> | 12 | #include < boost/fusi on/sequenc e/intrinsi c/begin.hp p> | |||
13 | #include < boost/fusi on/sequenc e/intrinsi c/end.hpp> | 13 | #include < boost/fusi on/sequenc e/intrinsi c/end.hpp> | |||
14 | #include < boost/fusi on/iterato r/next.hpp > | 14 | #include < boost/fusi on/iterato r/next.hpp > | |||
15 | #include < boost/fusi on/iterato r/deref.hp p> | 15 | #include < boost/fusi on/iterato r/deref.hp p> | |||
16 | #include < boost/fusi on/contain er/list/co ns_iterato r.hpp> | 16 | #include < boost/fusi on/contain er/list/co ns_iterato r.hpp> | |||
17 | #include < boost/fusi on/contain er/list/de tail/begin _impl.hpp> | 17 | #include < boost/fusi on/contain er/list/de tail/begin _impl.hpp> | |||
18 | #include < boost/fusi on/contain er/list/de tail/end_i mpl.hpp> | 18 | #include < boost/fusi on/contain er/list/de tail/end_i mpl.hpp> | |||
19 | #include < boost/fusi on/contain er/list/de tail/at_im pl.hpp> | 19 | #include < boost/fusi on/contain er/list/de tail/at_im pl.hpp> | |||
20 | #include < boost/fusi on/contain er/list/de tail/value _at_impl.h pp> | 20 | #include < boost/fusi on/contain er/list/de tail/value _at_impl.h pp> | |||
21 | #include < boost/fusi on/contain er/list/de tail/empty _impl.hpp> | 21 | #include < boost/fusi on/contain er/list/de tail/empty _impl.hpp> | |||
22 | #include < boost/type _traits/is _convertib le.hpp> | 22 | #include < boost/type _traits/is _convertib le.hpp> | |||
23 | #include < boost/util ity/enable _if.hpp> | 23 | #include < boost/util ity/enable _if.hpp> | |||
24 | #include < boost/fusi on/support /sequence_ base.hpp> | 24 | #include < boost/fusi on/support /sequence_ base.hpp> | |||
25 | #include < boost/mpl/ int.hpp> | 25 | #include < boost/mpl/ int.hpp> | |||
26 | #include < boost/mpl/ bool.hpp> | 26 | #include < boost/mpl/ bool.hpp> | |||
27 | #include < boost/mpl/ or.hpp> | 27 | #include < boost/mpl/ or.hpp> | |||
28 | 28 | |||||
29 | namespace boost { na mespace fu sion | 29 | namespace boost { na mespace fu sion | |||
30 | { | 30 | { | |||
31 | struct void_; | 31 | struct void_; | |||
32 | struct cons_tag; | 32 | struct cons_tag; | |||
33 | struct forward_t raversal_t ag; | 33 | struct forward_t raversal_t ag; | |||
34 | struct fusion_se quence_tag ; | 34 | struct fusion_se quence_tag ; | |||
35 | 35 | |||||
36 | struct nil _t : sequence_b ase<nil _t > | 36 |
struct
nil
|
|||
37 | { | 37 | { | |||
38 | ty pedef mpl: :int_<0> s ize; | 38 | ty pedef mpl: :int_<0> s ize; | |||
39 | ty pedef cons _tag fusio n_tag; | 39 | ty pedef cons _tag fusio n_tag; | |||
40 | ty pedef fusi on_sequenc e_tag tag; // this g ets picked up by MPL | 40 | ty pedef fusi on_sequenc e_tag tag; // this g ets picked up by MPL | |||
41 | ty pedef mpl: :false_ is _view; | 41 | ty pedef mpl: :false_ is _view; | |||
42 | ty pedef forw ard_traver sal_tag ca tegory; | 42 | ty pedef forw ard_traver sal_tag ca tegory; | |||
43 | ty pedef void _ car_type ; | 43 | ty pedef void _ car_type ; | |||
44 | ty pedef void _ cdr_type ; | 44 | ty pedef void _ cdr_type ; | |||
45 | 45 | |||||
46 | nil _t () {} | 46 |
nil
|
|||
47 | 47 | |||||
48 | te mplate <ty pename Ite rator> | 48 | te mplate <ty pename Ite rator> | |||
49 | nil _t (Iterator const& /*iter*/, mpl::true_ /*this_is_ an_iterato r*/) | 49 |
nil
|
|||
50 | {} | 50 | {} | |||
51 | 51 | |||||
52 | te mplate <ty pename Ite rator> | 52 | te mplate <ty pename Ite rator> | |||
53 | vo id assign_ from_iter( Iterator c onst& /*it er*/) | 53 | vo id assign_ from_iter( Iterator c onst& /*it er*/) | |||
54 | { | 54 | { | |||
55 | } | 55 | } | |||
56 | }; | 56 | }; | |||
57 | 57 | |||||
58 | template <typename Car, typename Cdr = nil _t > | 58 |
template
<typename
Car,
typename
Cdr
=
nil
|
|||
59 | struct cons : se quence_bas e<cons<Car , Cdr> > | 59 | struct cons : se quence_bas e<cons<Car , Cdr> > | |||
60 | { | 60 | { | |||
61 | ty pedef mpl: :int_<Cdr: :size::val ue+1> size ; | 61 | ty pedef mpl: :int_<Cdr: :size::val ue+1> size ; | |||
62 | ty pedef cons _tag fusio n_tag; | 62 | ty pedef cons _tag fusio n_tag; | |||
63 | ty pedef fusi on_sequenc e_tag tag; // this g ets picked up by MPL | 63 | ty pedef fusi on_sequenc e_tag tag; // this g ets picked up by MPL | |||
64 | ty pedef mpl: :false_ is _view; | 64 | ty pedef mpl: :false_ is _view; | |||
65 | ty pedef forw ard_traver sal_tag ca tegory; | 65 | ty pedef forw ard_traver sal_tag ca tegory; | |||
66 | ty pedef Car car_type; | 66 | ty pedef Car car_type; | |||
67 | ty pedef Cdr cdr_type; | 67 | ty pedef Cdr cdr_type; | |||
68 | 68 | |||||
69 | co ns() | 69 | co ns() | |||
70 | : car(), cdr() {} | 70 | : car(), cdr() {} | |||
71 | 71 | |||||
72 | ex plicit con s(typename detail::c all_param< Car>::type in_car) | 72 | ex plicit con s(typename detail::c all_param< Car>::type in_car) | |||
73 | : car(in _car), cdr () {} | 73 | : car(in _car), cdr () {} | |||
74 | 74 | |||||
75 | co ns( | 75 | co ns( | |||
76 | typename detail::c all_param< Car>::type in_car | 76 | typename detail::c all_param< Car>::type in_car | |||
77 | , typename detail::c all_param< Cdr>::type in_cdr) | 77 | , typename detail::c all_param< Cdr>::type in_cdr) | |||
78 | : car(in _car), cdr (in_cdr) { } | 78 | : car(in _car), cdr (in_cdr) { } | |||
79 | 79 | |||||
80 | te mplate <ty pename Car 2, typenam e Cdr2> | 80 | te mplate <ty pename Car 2, typenam e Cdr2> | |||
81 | co ns(cons<Ca r2, Cdr2> const& rhs ) | 81 | co ns(cons<Ca r2, Cdr2> const& rhs ) | |||
82 | : car(rh s.car), cd r(rhs.cdr) {} | 82 | : car(rh s.car), cd r(rhs.cdr) {} | |||
83 | 83 | |||||
84 | co ns(cons co nst& rhs) | 84 | co ns(cons co nst& rhs) | |||
85 | : car(rh s.car), cd r(rhs.cdr) {} | 85 | : car(rh s.car), cd r(rhs.cdr) {} | |||
86 | 86 | |||||
87 | te mplate <ty pename Seq uence> | 87 | te mplate <ty pename Seq uence> | |||
88 | co ns( | 88 | co ns( | |||
89 | Sequence const& se q | 89 | Sequence const& se q | |||
90 | , typename disable_i f< | 90 | , typename disable_i f< | |||
91 | mpl: :or_< | 91 | mpl: :or_< | |||
92 | is_convert ible<Seque nce, cons> // use co py ctor in stead | 92 | is_convert ible<Seque nce, cons> // use co py ctor in stead | |||
93 | , is_convert ible<Seque nce, Car> // use co py to car instead | 93 | , is_convert ible<Seque nce, Car> // use co py to car instead | |||
94 | > | 94 | > | |||
95 | >::type* /*dummy*/ = 0 | 95 | >::type* /*dummy*/ = 0 | |||
96 | ) | 96 | ) | |||
97 | : car(*f usion::beg in(seq)) | 97 | : car(*f usion::beg in(seq)) | |||
98 | , cdr(fu sion::next (fusion::b egin(seq)) , mpl::tru e_()) {} | 98 | , cdr(fu sion::next (fusion::b egin(seq)) , mpl::tru e_()) {} | |||
99 | 99 | |||||
100 | te mplate <ty pename Ite rator> | 100 | te mplate <ty pename Ite rator> | |||
101 | co ns(Iterato r const& i ter, mpl:: true_ /*th is_is_an_i terator*/) | 101 | co ns(Iterato r const& i ter, mpl:: true_ /*th is_is_an_i terator*/) | |||
102 | : car(*i ter) | 102 | : car(*i ter) | |||
103 | , cdr(fu sion::next (iter), mp l::true_() ) {} | 103 | , cdr(fu sion::next (iter), mp l::true_() ) {} | |||
104 | 104 | |||||
105 | te mplate <ty pename Car 2, typenam e Cdr2> | 105 | te mplate <ty pename Car 2, typenam e Cdr2> | |||
106 | co ns& operat or=(cons<C ar2, Cdr2> const& rh s) | 106 | co ns& operat or=(cons<C ar2, Cdr2> const& rh s) | |||
107 | { | 107 | { | |||
108 | car = rh s.car; | 108 | car = rh s.car; | |||
109 | cdr = rh s.cdr; | 109 | cdr = rh s.cdr; | |||
110 | return * this; | 110 | return * this; | |||
111 | } | 111 | } | |||
112 | 112 | |||||
113 | co ns& operat or=(cons c onst& rhs) | 113 | co ns& operat or=(cons c onst& rhs) | |||
114 | { | 114 | { | |||
115 | car = rh s.car; | 115 | car = rh s.car; | |||
116 | cdr = rh s.cdr; | 116 | cdr = rh s.cdr; | |||
117 | return * this; | 117 | return * this; | |||
118 | } | 118 | } | |||
119 | 119 | |||||
120 | te mplate <ty pename Seq uence> | 120 | te mplate <ty pename Seq uence> | |||
121 | ty pename dis able_if<is _convertib le<Sequenc e, Car>, c ons&>::typ e | 121 | ty pename dis able_if<is _convertib le<Sequenc e, Car>, c ons&>::typ e | |||
122 | op erator=(Se quence con st& seq) | 122 | op erator=(Se quence con st& seq) | |||
123 | { | 123 | { | |||
124 | typedef typename r esult_of:: begin<Sequ ence const >::type It erator; | 124 | typedef typename r esult_of:: begin<Sequ ence const >::type It erator; | |||
125 | Iterator iter = fu sion::begi n(seq); | 125 | Iterator iter = fu sion::begi n(seq); | |||
126 | this->as sign_from_ iter(iter) ; | 126 | this->as sign_from_ iter(iter) ; | |||
127 | return * this; | 127 | return * this; | |||
128 | } | 128 | } | |||
129 | 129 | |||||
130 | te mplate <ty pename Ite rator> | 130 | te mplate <ty pename Ite rator> | |||
131 | vo id assign_ from_iter( Iterator c onst& iter ) | 131 | vo id assign_ from_iter( Iterator c onst& iter ) | |||
132 | { | 132 | { | |||
133 | car = *i ter; | 133 | car = *i ter; | |||
134 | cdr.assi gn_from_it er(fusion: :next(iter )); | 134 | cdr.assi gn_from_it er(fusion: :next(iter )); | |||
135 | } | 135 | } | |||
136 | 136 | |||||
137 | ca r_type car ; | 137 | ca r_type car ; | |||
138 | cd r_type cdr ; | 138 | cd r_type cdr ; | |||
139 | }; | 139 | }; | |||
140 | }} | 140 | }} | |||
141 | 141 | |||||
142 | #endif | 142 | #endif | |||
143 | 143 |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2007 Araxis Ltd (www.araxis.com). All rights reserved.