@@ -54,12 +54,13 @@ bool test_type_conversion(const Boxed_Value &bv, bool expectedpass)
5454}
5555
5656template <typename Type>
57- bool do_test (const Boxed_Value &bv, bool T, bool ConstT, bool TRef, bool ConstTRef, bool TPtr, bool ConstTPtr, bool TPtrConst,
58- bool ConstTPtrConst, bool SharedPtrT, bool SharedConstPtrT,
59- bool ConstSharedPtrT, bool ConstSharedConstPtrT, bool ConstSharedPtrTRef, bool ConstSharedPtrTConstRef,
60- bool WrappedRef, bool WrappedConstRef, bool ConstWrappedRef, bool ConstWrappedConstRef,
61- bool ConstWrappedRefRef, bool ConstWrappedConstRefRef, bool Number,
62- bool ConstNumber, bool ConstNumberRef, bool TPtrConstRef, bool ConstTPtrConstRef)
57+ bool do_test (const Boxed_Value &bv,
58+ bool T, bool ConstT, bool TRef, bool ConstTRef, bool TPtr,
59+ bool ConstTPtr, bool TPtrConst, bool ConstTPtrConst, bool SharedPtrT, bool SharedConstPtrT,
60+ bool SharedPtrTRef, bool ConstSharedPtrT, bool ConstSharedConstPtrT, bool ConstSharedPtrTRef, bool ConstSharedPtrTConstRef,
61+ bool WrappedRef, bool WrappedConstRef, bool ConstWrappedRef, bool ConstWrappedConstRef, bool ConstWrappedRefRef,
62+ bool ConstWrappedConstRefRef, bool Number, bool ConstNumber, bool ConstNumberRef, bool TPtrConstRef,
63+ bool ConstTPtrConstRef)
6364{
6465 bool passed = true ;
6566 passed &= test_type_conversion<Type>(bv, T);
@@ -72,8 +73,8 @@ bool do_test(const Boxed_Value &bv, bool T, bool ConstT, bool TRef, bool ConstTR
7273 passed &= test_type_conversion<const Type * const >(bv, ConstTPtrConst);
7374 passed &= test_type_conversion<std::shared_ptr<Type> >(bv, SharedPtrT);
7475 passed &= test_type_conversion<std::shared_ptr<const Type> >(bv, SharedConstPtrT);
75- passed &= test_type_conversion<std::shared_ptr<Type> &>(bv, false );
76- passed &= test_type_conversion<std::shared_ptr<const Type> &>(bv, false );
76+ passed &= test_type_conversion<std::shared_ptr<Type> &>(bv, SharedPtrTRef );
77+ // passed &= test_type_conversion<std::shared_ptr<const Type> &>(bv, false);
7778 passed &= test_type_conversion<const std::shared_ptr<Type> >(bv, ConstSharedPtrT);
7879 passed &= test_type_conversion<const std::shared_ptr<const Type> >(bv, ConstSharedConstPtrT);
7980 passed &= test_type_conversion<const std::shared_ptr<Type> &>(bv, ConstSharedPtrTRef);
@@ -115,37 +116,37 @@ bool built_in_type_test(const T &initial, bool ispod)
115116 T i = T (initial);
116117 passed &= do_test<T>(var (i), true , true , true , true , true ,
117118 true , true , true , true , true ,
118- true , true , true , true , true ,
119+ true , true , true , true , true , true ,
119120 true , true , true , true , true ,
120121 ispod, ispod, ispod, true , true );
121122
122123 passed &= do_test<T>(const_var (i), true , true , false , true , false ,
123124 true , false , true , false , true ,
124- false , true , false , true , false ,
125+ false , false , true , false , true , false ,
125126 true , false , true , false , true ,
126127 ispod, ispod, ispod, false , true );
127128
128129 passed &= do_test<T>(var (&i), true , true , true , true , true ,
129130 true , true , true , false , false ,
130- false , false , false , false , true ,
131+ false , false , false , false , false , true ,
131132 true , true , true , true , true ,
132133 ispod, ispod, ispod, true , true );
133134
134135 passed &= do_test<T>(const_var (&i), true , true , false , true , false ,
135136 true , false , true , false , false ,
136- false , false , false , false , false ,
137+ false , false , false , false , false , false ,
137138 true , false , true , false , true ,
138139 ispod, ispod, ispod, false , true );
139140
140141 passed &= do_test<T>(var (std::ref (i)), true , true , true , true , true ,
141142 true , true , true , false , false ,
142- false , false , false , false , true ,
143+ false , false , false , false , false , true ,
143144 true , true , true , true , true ,
144145 ispod, ispod, ispod, true , true );
145146
146147 passed &= do_test<T>(var (std::cref (i)), true , true , false , true , false ,
147148 true , false , true , false , false ,
148- false , false , false , false , false ,
149+ false , false , false , false , false , false ,
149150 true , false , true , false , true ,
150151 ispod, ispod, ispod, false , true );
151152
@@ -156,33 +157,33 @@ bool built_in_type_test(const T &initial, bool ispod)
156157
157158 passed &= do_test<T>(var (i), true , true , true , true , true ,
158159 true , true , true , true , true ,
159- true , true , true , true , true ,
160+ true , true , true , true , true , true ,
160161 true , true , true , true , true ,
161162 ispod, ispod, ispod, true , true );
162163
163164 // But a pointer or reference to it should be necessarily const
164165 passed &= do_test<T>(var (&ir), true , true , false , true , false ,
165166 true , false , true , false , false ,
166- false , false , false , false , false ,
167+ false , false , false , false , false , false ,
167168 true , false , true , false , true ,
168169 ispod, ispod, ispod, false , true );
169170
170171 passed &= do_test<T>(var (std::ref (ir)), true , true , false , true , false ,
171172 true , false , true , false , false ,
172- false , false , false , false , false ,
173+ false , false , false , false , false , false ,
173174 true , false , true , false , true ,
174175 ispod, ispod, ispod, false , true );
175176
176177 // Make sure const of const works too
177178 passed &= do_test<T>(const_var (&ir), true , true , false , true , false ,
178179 true , false , true , false , false ,
179- false , false , false , false , false ,
180+ false , false , false , false , false , false ,
180181 true , false , true , false , true ,
181182 ispod, ispod, ispod, false , true );
182183
183184 passed &= do_test<T>(const_var (std::ref (ir)), true , true , false , true , false ,
184185 true , false , true , false , false ,
185- false , false , false , false , false ,
186+ false , false , false , false , false , false ,
186187 true , false , true , false , true ,
187188 ispod, ispod, ispod, false , true );
188189
@@ -192,14 +193,14 @@ bool built_in_type_test(const T &initial, bool ispod)
192193 const T*cip = &i;
193194 passed &= do_test<T>(var (cip), true , true , false , true , false ,
194195 true , false , true , false , false ,
195- false , false , false , false , false ,
196+ false , false , false , false , false , false ,
196197 true , false , true , false , true ,
197198 ispod, ispod, ispod, false , true );
198199
199200 // make sure const of const works
200201 passed &= do_test<T>(const_var (cip), true , true , false , true , false ,
201202 true , false , true , false , false ,
202- false , false , false , false , false ,
203+ false , false , false , false , false , false ,
203204 true , false , true , false , true ,
204205 ispod, ispod, ispod, false , true );
205206
@@ -209,13 +210,13 @@ bool built_in_type_test(const T &initial, bool ispod)
209210
210211 passed &= do_test<T>(var (ip), true , true , true , true , true ,
211212 true , true , true , true , true ,
212- true , true , true , true , true ,
213+ true , true , true , true , true , true ,
213214 true , true , true , true , true ,
214215 ispod, ispod, ispod, true , true );
215216
216217 passed &= do_test<T>(const_var (ip), true , true , false , true , false ,
217218 true , false , true , false , true ,
218- false , true , false , true , false ,
219+ false , false , true , false , true , false ,
219220 true , false , true , false , true ,
220221 ispod, ispod, ispod, false , true );
221222
@@ -224,14 +225,14 @@ bool built_in_type_test(const T &initial, bool ispod)
224225
225226 passed &= do_test<T>(var (ipc), true , true , false , true , false ,
226227 true , false , true , false , true ,
227- false , true , false , true , false ,
228+ false , false , true , false , true , false ,
228229 true , false , true , false , true ,
229230 ispod, ispod, ispod, false , true );
230231
231232 // const of this should be the same, making sure it compiles
232233 passed &= do_test<T>(const_var (ipc), true , true , false , true , false ,
233234 true , false , true , false , true ,
234- false , true , false , true , false ,
235+ false , false , true , false , true , false ,
235236 true , false , true , false , true ,
236237 ispod, ispod, ispod, false , true );
237238
0 commit comments