v0.8
tagcde5feb0f98f139f9292154b1db6f9b8a35abf18
object fbb27dca633dd5a0148e8a6a953846455fdd6f5a
authorMike Sharov <msharov@users.sourceforge.net>
Tue, 24 Jul 2007 23:35:59 +0000 (24 19:35 -0400)
2005-11-10 Release 0.8
* API CHANGE: changed all string's find members to return offsets
instead of iterators. That's what the STL standard requires.
Also added standard-required replace/inserts with offset
arguments. Yes, this is a bit painful. I was using it a lot...
But it's all for the better. I promise!
* Removed char_at and ichar from string; use utf8_begin/end instead.
* Iterator-based string insert now return an iterator, like vector.
* Added more wchar_t overloads to string, include append and assign.
* Updated bsconf to use malloc instead of static buffers.
* construct/destruct will now disappear for integral types.
Integral types have no destructors/constructors.
* Fixed istream_iterator to read on construction and in operator++
as the standard says. Unfortunately, this makes it almost
totally useless, since using it as a source for copy will
always overread by one because copy will call ++ past the
end, which will read one element past the end. This behaviour
is understandable when reading to EOF (which is the only
example ever shown for using it), but worthless when you
have a fixed number of elements you want to read. I'm only
using it to implement utf8 from streams, so, having fixed
that to not overread, I'll chalk it up to standard
compliance.
* Made istream_iterator default constructible and implemented the
EOF check during reading. This should make read-to-EOF
scenario possible.
* Made streams runtime bounds checking on by default.
* Added operator-- to istream_iterator to do unputs.
This works only once for variable-length types because there
is no way to know the length to back up to get the element
before the currently cached one. Constant-length types can
be unput multiple times, and can use -= and - operators.
* fdistringstream underflow will no longer erase the entire buffer.
This helps to keep ungetc working most of the time.
* Similarly fixed utf8in_iterator to read on construction.
This fixed the double-advance bug in utf8in_iterator.
* Fixed utf8in_iterator to not read ahead (except in constructor)
before operator++ is called. This ensures that it does not
read past the end of the string if it isn't 0-terminated.
(Although it will still do so if you call ++)
* Field width should be padded with spaces, not zeroes.
* Implemented some heap algorithms.
* Added VectorRange macro.
* Added relink() call to memlinks for faster resizing.
relink does the work of link, but without calling unlink.
* Added to string substr and like functions.
* Moved simd fill into ualgobase.cc
* configure now recompiles bsconf if its sources change.
* Fixed a rare off-by-one error in ostringstream vprintf.
* Removed fdostringstream printf, since ostringstream has it already.
* Fixed bsconf crash when all inline options are enabled.
* Fixed crash when NULL filename given to file_exception.
* Corrected potential buffer overflow in file_exception and sistream.
* Fixed string rfind for strings; was returning a wrong value sometimes.
* Added copy_link call to memblock to make a copy of linked data.
* Added assert to memlink begin() to warn when writing to a const block.
* Makefile now correctly uses ${MAKE} to recurse.
* Removed all usage of "y" in SIMD asm blocks; gcc<4-> movd, not movq.
This fixes problems with MMX fround on some platforms.
* Removed SSE3 detection from bsconf; it just doesn't work!
* Added BYTE_ORDER detection in bsconf.
* Made BYTE_ORDER and bswap always defined.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQBGpoz1Vn5SHTlYTUERAruYAJ9sRGanP2r1kQvGnmrQM5wCh3OCAACeO/Cu
V8gawUHP0QffmS4qqpTVbGY=
=7iql
-----END PGP SIGNATURE-----