I see functions marked with "nothrow", but inside they have: try { ... } catch (Exception e) { assert(0, "FracSec's constructor threw when it shouldn't have"); } This is redundant, and adds significant bloat. The compiler will statically check that the nothrow is enforced for you.