Liste des Groupes | Revenir à cl c |
Am 28.08.2024 um 15:35 schrieb Thiago Adams:You have to deallocate only if the ownership still with the same object.
In C you learn how to write less code.You do th same in C, but manually.
RAII, destructor, constructor is a bad idea, but I don't know if it is a good place to talk about it. I also don't know if I will be able to convince you.If you have a allocated resource you've to deallocate it at the end of
the scope. In C you do that error-prone with goto-orgies like in the
Linux-kernel. In C++ there's no goto necessary and the resulting code
is the same.
To create view object you need a new object because destructor cannot be disabled.One problem of RAII and destructor we cannot disable it.If you've got to deallocate the memory you need the destructor.
If you move your container elsewhere and the compiler sees that
the destructor is opimized away for the non-exception code-path.
excuses..By the way, in C++ we cannot move const objects. This is ridiculous.Const-objects are there not to be modified. If you've got logical
constness you can cast away the const with const_cast and move its
contents. But casting away const is unclean mostly in C and C++.
It was create latter after people realize std::string was bad.How we call it does not change the fact is the someone else wrote the code. Then we write less code if we use other people code.Such code from the standard library is optimal in terms of performance.
And using C++23' mdspan results in the same code and a tenth of the
LOCs
#include <memory>In C you've no OOP and no unique_ptr, everything is done manually
>
struct base2 {
virtual std::unique_ptr<struct base> clone();
};
struct derived2 : public base2 {
struct std::unique_ptr<struct derived> clone() override{
return this;
}
};
with ten times the code.
string_view was a "fix" and then we will have a fix for a fix etc..string_view isn't a fix, it's a very useful feature.
Les messages affichés proviennent d'usenet.