275 unsigned int nbok = 0;
276 trace.
beginBlock (
"Number of A1 instances with standard by-value parameter passing." );
279 trace.
info() <<
"D: d1.value() = " << d1.value() << std::endl;
280 ++nb; nbok += A1::nbCreated==3 ? 1 : 0;
281 ++nb; nbok += A1::nbDeleted==1 ? 1 : 0;
282 trace.
info() <<
"(" << nbok <<
"/" << nb <<
")"
283 <<
" nbCreated=" << A1::nbCreated
284 <<
" nbDeleted=" << A1::nbDeleted << std::endl;
286 trace.
beginBlock (
"Number of A1 instances with explicit by-value parameter passing (Clone)." );
288 ++nb; nbok += A1::nbCreated==4 ? 1 : 0;
289 ++nb; nbok += A1::nbDeleted==1 ? 1 : 0;
290 trace.
info() <<
"(" << nbok <<
"/" << nb <<
")"
291 <<
" nbCreated=" << A1::nbCreated
292 <<
" nbDeleted=" << A1::nbDeleted << std::endl;
294 trace.
beginBlock (
"Number of A1 instances with explicit by-reference parameter passing (Alias)." );
296 ++nb; nbok += A1::nbCreated==4 ? 1 : 0;
297 ++nb; nbok += A1::nbDeleted==1 ? 1 : 0;
298 trace.
info() <<
"(" << nbok <<
"/" << nb <<
")"
299 <<
" nbCreated=" << A1::nbCreated
300 <<
" nbDeleted=" << A1::nbDeleted << std::endl;
302 trace.
beginBlock (
"Number of A1 instances with explicit by-const reference parameter passing (Alias)." );
303 EByConstAlias ee1( a1 );
304 ++nb; nbok += A1::nbCreated==4 ? 1 : 0;
305 ++nb; nbok += A1::nbDeleted==1 ? 1 : 0;
306 trace.
info() <<
"(" << nbok <<
"/" << nb <<
")"
307 <<
" nbCreated=" << A1::nbCreated
308 <<
" nbDeleted=" << A1::nbDeleted << std::endl;
310 trace.
beginBlock (
"Number of A1 instances with explicit by-value parameter passing into heap (Clone)." );
311 FByCloneHeap fe1( a1 );
312 ++nb; nbok += A1::nbCreated==5 ? 1 : 0;
313 ++nb; nbok += A1::nbDeleted==1 ? 1 : 0;
314 trace.
info() <<
"(" << nbok <<
"/" << nb <<
")"
315 <<
" nbCreated=" << A1::nbCreated
316 <<
" nbDeleted=" << A1::nbDeleted << std::endl;
318 trace.
beginBlock (
"Number of A1 instances with explicit by-value parameter passing into CowPtr (Clone)." );
319 FByCloneCowPtr fe3( a1 );
320 ++nb; nbok += A1::nbCreated==6 ? 1 : 0;
321 ++nb; nbok += A1::nbDeleted==1 ? 1 : 0;
322 trace.
info() <<
"(" << nbok <<
"/" << nb <<
")"
323 <<
" nbCreated=" << A1::nbCreated
324 <<
" nbDeleted=" << A1::nbDeleted << std::endl;
328 trace.
beginBlock (
"Total perimeter of triangles with by-value parameter passing." );
330 trace.
info() <<
"Perimeter is " << t1 << std::endl;
331 ++nb; nbok += Point::nbCreated == Point::nbDeleted ? 1 : 0;
332 trace.
info() <<
"(" << nbok <<
"/" << nb <<
")"
333 <<
" Point nbCreated=" << Point::nbCreated
334 <<
" nbDeleted=" << Point::nbDeleted << std::endl;
335 int nbC = Point::nbCreated;
338 trace.
beginBlock (
"Total perimeter of triangles with by-const reference parameter passing." );
340 trace.
info() <<
"Perimeter is " << t2 << std::endl;
341 ++nb; nbok += Point::nbCreated == Point::nbDeleted ? 1 : 0;
342 ++nb; nbok += Point::nbCreated < nbC ? 1 : 0;
343 trace.
info() <<
"(" << nbok <<
"/" << nb <<
")"
344 <<
" Point nbCreated=" << Point::nbCreated
345 <<
" nbDeleted=" << Point::nbDeleted << std::endl;
348 trace.
beginBlock (
"Total perimeter of triangles with by Clone parameter passing." );
350 trace.
info() <<
"Perimeter is " << t3 << std::endl;
351 ++nb; nbok += Point::nbCreated == Point::nbDeleted ? 1 : 0;
352 ++nb; nbok += Point::nbCreated < nbC ? 1 : 0;
353 trace.
info() <<
"(" << nbok <<
"/" << nb <<
")"
354 <<
" Point nbCreated=" << Point::nbCreated
355 <<
" nbDeleted=" << Point::nbDeleted << std::endl;
363 return ( nb == nbok ) ? 0 : 1;