On Tue, 12 May 2020 at 11:48, Freddie Chopin wrote:
> To summarize. Current C++ exceptions have very huge, mostly "one-time"
> kind, cost on the size, even if not used at all by the user, mosly due
> to std::terminate() and all the string handling code inside it, as well
> as the unwind tables.
There is no string handling code in std::terminate:
namespace std
{
typedef void (*terminate_handler) ();
void terminate() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__noreturn__));
}
void
__cxxabiv1::__terminate (std::terminate_handler handler) throw ()
{
__try
{
handler ();
std::abort ();
}
__catch(...)
{ std::abort (); }
}
void
std::terminate () throw()
{
__terminate (get_terminate ());
}
Please clarify what you're talking about.