4 ms·
Because c++ without OOP still gives you RAII (which is neutered a bit if you don't write your own classes but still), safe pointers, references, lambda, and an
by oldmanhorton 7y ago
Because c++ without OOP still gives you RAII (which is neutered a bit if you don't write your own classes but still), safe pointers, references, lambda, and an immense standard library, to name a few.
- klipt 7y agoIf by safe pointers you mean unique_ptr etc, I'm pretty sure those are classes: https://en.cppreference.com/w/cpp/memory/unique_ptr https://en.cppreference.com/w/cpp/memory/unique_ptr So by definition require OOP?
- Thiez 7y agoOOP is such a nebulous thing. Just because the word 'class' is used doesn't mean something is OOP. Those smart pointers don't use inheritance, they don't implement any interfaces, no virtual methods...
- deleted 7y ago[deleted]
- klipt 7y agoI would call that using a subset of OOP features[1], not avoiding it entirely. But I guess there's no point in arguing over semantics. [1] As Wikipedia defines OOP: "a programming paradigm based on the concept of "objects", which can contain data, in the form of fields (often known as attributes or properties), and code, in the form of procedures (often known as methods)." https://en.wikipedia.org/wiki/Object-oriented_programming https://en.wikipedia.org/wiki/Object-oriented_programming
- ncmncm 7y agoIt's not classic OOP without inheritance and virtual functions. But nobody seriously uses virtual functions anymore, except where they would need to use function pointers, and for precisely those uses virtual functions are way better: cleaner, safer, often faster.
- yvdriess 7y agoThat but without using any of the standard libraries. Even RAII can get in the way.
- kazinator 7y agoC++ RAII is completely gone without the use of classes; it requires something with a destructor.
- vnorilo 7y agoI guess the OP means pod types (plain Cish structs) where dtors are implicit.
- AnimalMuppet 7y agoBut then what's left of RAII? What resource is there to allocate other than the memory itself? RAII means more than just "get memory to put this in".
- vnorilo 7y agoPresuming GP includes unique_ptr, there's no real loss of RAII. In my opinion you might as well write trivial classes, but hey, to each his own.
- deleted 7y ago[deleted]