# OpType * see * class OpType static unsigned is(unsigned typeMask, int c); * template class IsOpType unsigned operator()(int c) const; * example: see http://code.google.com/p/winx/source/detail?r=977 # BasicArray * see * add constructor: BasicArray(AllocT& alloc, const ContainerT& container); # Range * see * change from: template class Range to: template ::value_type> class Range // This change is only for supporting VC++ 6.0 * add macro rangeof (example: filepath/examples/OpenNotepad). # cast * see * cast(string, radix) ==> cast(radix, string); * add functions (see http://code.google.com/p/winx/issues/detail?id=105): Type cast(string, failVal); Type cast(radix, string, failVal); * example: stdext/examples/cast # split/explode * see * change explode prototype from: BasicArray > explode( AllocT& alloc, SepIteratorT first, SepIteratorT last, BasicString s); BasicArray > explode( AllocT& alloc, SepIteratorT first, SepIteratorT last, BasicString s); BasicArray > explode( AllocT& alloc, SepT sep, BasicString s); // Here SepT can be: CharT, std::basic_string, std::vector, std::deque, etc. BasicArray > explode( AllocT& alloc, SepT sep, BasicString s); to: BasicArray > explode2( AllocT& alloc, CharT sep, BasicString s); // We change some explode functions to explode2. This change is only for supporting VC++ 6.0 // Here, flags can be: 0, efEraseEmpty, efTrim, efEraseEmpty|efTrim BasicArray > explode( AllocT& alloc, CharT sep, BasicString s); * add functions: BasicArray > explode2( CharT sep, BasicString s, ContainerT& cont); BasicArray > explode( CharT sep, BasicString s, ContainerT& cont); // Here, ContainerT can be any stl containers with element type = BasicString * alias split = explode, split2 = explode2 # trim/trimLeft/trimRight * see * add functions: Iterator trimLeft(Iterator first, Iterator last); Iterator trimRight(Iterator first, Iterator last); * refactor functions: BasicString trim(BasicString s); BasicString trimLeft(BasicString s); BasicString trimRight(BasicString s); # WriteArchive * see * add methods: WriteArchive& printLines(Iterator lineFirst, Iterator lineLast, SepT sep); WriteArchive& printLines(Iterator lineFirst, Iterator lineLast); WriteArchive& printLines(const ContainerT& lines); # MMapReadArchive (http://code.google.com/p/winx/issues/detail?id=101) * see * example: stdext/examples/archive # IO.Text * see (name space NS_STDEXT::io) * add functions: void print(WriteArchiveT& ar, StringT s); void printLines(WriteArchiveT& ar, Iterator lineFirst, Iterator lineLast, SepT sep); void printLines(WriteArchiveT& ar, Iterator lineFirst, Iterator lineLast); void printLines(WriteArchiveT& ar, const ContainerT& lines); # FileBuf (http://code.google.com/p/winx/issues/detail?id=99) * see * add class: MapFileBuf # FileMapping (http://code.google.com/p/winx/issues/detail?id=100) * see * rename to * add class: MapFile (see ) * add class: FileMapping (see ) * add classes: (see ) SegmentAllocBuffer SegmentAccessBuffer/SegmentViewBuffer AccessBuffer/ViewBuffer * example: stdext/examples/mapfile # String Search Algoritm * see , * see http://code.google.com/p/winx/issues/detail?id=97 * bugfix: searching algorithm can't end when FindNoCase * iteratorNext(it, limit, &itFind) ==> iteratorNext(it, itEnd, &itFind); # Examples * stdext/examples/archive * stdext/examples/filebuf * stdext/examples/archive * stdext/examples/mapfile * stdext/examples/mmap * stdext/examples/sort