include/symbolism/N.Size.h

00001 
00004 inline N::size_t max(N::size_t a, N::size_t b)
00005 {
00006     return (a > b) ? a : b;
00007 }
00008 
00023 inline void N::reserve(size_t newsize)
00024 {
00025     if(newsize == size)
00026     {
00027         return;
00028     }
00029     else if(size)
00030     {
00031         // newsize > 0
00032         reserve_large(newsize);
00033     }
00034     else
00035     {
00036         reserve_small(newsize);
00037     }
00038 }
00039 
00052 inline void N::resize(size_t newsize)
00053 {
00054     if(newsize == size)
00055     {
00056         return;
00057     }
00058     else if(newsize < size)
00059     {
00060         throw can_not_shrink_exception(__FILE__, __LINE__);
00061     }
00062     else if(size)
00063     {
00064         resize_large(newsize);
00065     }
00066     else
00067     {
00068         resize_small(newsize);
00069     }
00070 }
00071 
00086 inline void N::truncate(size_t newsize)
00087 {
00088     if(newsize < size)
00089     {
00090         truncate_large(newsize);
00091     }
00092     else if(newsize > size)
00093     {
00094         if(size)
00095         {
00096             resize_large(newsize);
00097         }
00098         else
00099         {
00100             resize_small(newsize);
00101         }
00102     }
00103 }
00104 
00117 inline void N::normalize()
00118 {
00119     if(size > 0 && data[size] == 0)
00120     {
00121         normalize_large();
00122     }
00123 }

Copyright © 2007-2008 Remco Bloemen.

Generated on Tue Jan 22 17:35:31 2008 for symbolism by doxygen 1.5.4

Hosted by SourceForge.net Logo