On the contrary! I found out that a rewrite from scratch leads to much better code and abstractions, as you understand the problem space better. (On the other hand, beware of http://catb.org/jargon/html/S/second-system-effect.html)
mormegil
I wanted to publish a tiny utility I created to GitHub (you know, it might be useful to someone else...). Before that, I wanted to some cleanup, rebasing/squashing a bit, etc. In the middle of that:
$ git checkout featurebranch
The following untracked working tree files would be overwritten by checkout:
.gitignore
.idea/…
etc...
Oh, sure, no problem…
$ rm -rf * .*
$ git checkout featurebranch
fatal: not a git repository (or any of the parent directories): .git
D’oh! (Never mind, it probably wouldn't have been useful to anyone else, anyway.)
Its written vibe.
That's an aladeen idea!
Tells you exactly what and at which line the problem is?
Syntax error: unmatched thing in thing from std::nonstd::__map<_Cyrillic, _$$$dollars>const basic_string<epic_mystery,mongoose_traits<char>, __default_alloc_<casual_Fridays = maybe>>
Sure, strtok is a terrible misfeature, a relic of ancient times, but it's plainly the heritage of C, not C++ (just like e.g. strcpy). The C++ problems are things like braced initialization list having different meaning depending on the set of available constructors, or the significantly non-zero cost of various abstractions, caused by strange backward-compatible limitations of the standard/ABI definitions, or the distinctness of vector<bool>
etc.
Int3 is a special single-byte (CC, if I recall correctly) form of the INT instruction (which is CD imm8, I think) to raise an interrupt. Interrupt #3 is the debugging interrupt, so by overwriting any instruction with CC, you place a breakpoint there.
This might work when the test really describes&tests the business rule, not when the test simply contains a mirror of the implementation with everything replaced by mocks and just checks that the implementation is what it is, conditioning all people changing the code in the future to always have to change the test as well.