May I suggest to check that "Expand" in the second - improved - "SimpleVector" class is also corrected?
There is another error - just a simple typo - in the "Moveable"-documentation:
The last member function of the class "SimpleString" is obviously the destructor, but the tilde (~) in front of "SimpleString" is missing.
By the way, the "Moveable" documentation leads to the following question:
As a "NTL_MOVEABLE"-macro example you provide:
NTL_MOVEABLE(std::string);
This provokes to use STL's "string" instead of UPP's "String". What is there against it? (After all its the standard!)
Werner
Actually, this provokes that I should finally make the pass through NTL documentation.
NTL_MOVEABLE(std::string);
is unfortunately just a guessing - there is nothing in C++ standard about std::string being moveable and, worse, non-moveable implementation makes sense.
There are other troubles with std::string - e.g. copy may depend on the length. That is quite a problem as we are used to store whole files in String...