| > That's not the case - the standard library provides `std::alloc`, which is the allocator also backing Box and Vec. Again, emphasis on the word, default. How are you using Box and Vec. Are you by default encouraged to drop them manually via Allocator? No, you aren't. You're heavily discouraged via usage of `unsafe`, you are discouraged because the compiler does automatic `alloc`/`drop`. You have to go out of your way to do manual memory management. > Your definition of default semantics I showed you what happens when you apply the non-default semantics of a language to C. You end up with nonsensical statements like C is a GC language. Just because a style is possible in language X doesn't mean language X is of that style. > C isn't considered a manual language because of default semantics, but because people have chosen to mainly rely on such paradigm. And why is that? Because the default affordance of the language makes it so that way of usage is the most natural to most users. You could put everything in the stack, but that would be extremely torturous for most users, so they use malloc/free. You give people a knife, of course they will grab it by the handle. |