utilities/copy.hpp should include debug.hpp and use assert, rather than #ifdef ASSERT blocks that call basic_fatal. This should eliminate all remaining uses of basic_fatal, which can then be removed.
While making such a change, the error messages should be made more informative, including checked values and the like.
While making such a change, consider changing the various assert_xxx private helper functions to be file-local macros (e.g. #undef at the end of the file), to provide useful __FILE__ and __LINE__ information.
While making such a change, the error messages should be made more informative, including checked values and the like.
While making such a change, consider changing the various assert_xxx private helper functions to be file-local macros (e.g. #undef at the end of the file), to provide useful __FILE__ and __LINE__ information.