summaryrefslogtreecommitdiff
path: root/src/array.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/array.h')
-rw-r--r--src/array.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/array.h b/src/array.h
index ca4ec21..6279382 100644
--- a/src/array.h
+++ b/src/array.h
@@ -10,6 +10,7 @@
10 10
11#include <memory> 11#include <memory>
12#include "bu/exceptionbase.h" 12#include "bu/exceptionbase.h"
13#include "bu/archivebase.h"
13 14
14namespace Bu 15namespace Bu
15{ 16{
@@ -442,6 +443,38 @@ namespace Bu
442 443
443 return f; 444 return f;
444 } 445 }
446
447 template<typename value, int inc, typename valuealloc>
448 ArchiveBase &operator<<( ArchiveBase &ar,
449 const Array<value, inc, valuealloc> &h )
450 {
451 ar << h.getSize();
452 for( typename Array<value, inc, valuealloc>::const_iterator i =
453 h.begin(); i != h.end(); i++ )
454 {
455 ar << (*i);
456 }
457
458 return ar;
459 }
460
461 template<typename value, int inc, typename valuealloc>
462 ArchiveBase &operator>>(ArchiveBase &ar, Array<value, inc, valuealloc> &h )
463 {
464 h.clear();
465 long nSize;
466 ar >> nSize;
467
468 h.setCapacity( nSize );
469 for( long j = 0; j < nSize; j++ )
470 {
471 value v;
472 ar >> v;
473 h.append( v );
474 }
475 return ar;
476 }
477
445} 478}
446 479
447#endif 480#endif