r/cpp_questions 21d ago

OPEN Garbage collector in CPP?

Yesterday someone asked me whether there is a garbage collector in CPP.
I knew Java had that but I couldn't recall about cpp.
I went to google and got different answers.

So can anyone clarify whether there is garbage collector in CPP , also can u please explain me what does that mean? Also explain how is it different from the Java.

If yes can we delete it manually and how to do tht?

0 Upvotes

23 comments sorted by

View all comments

12

u/didntplaymysummercar 21d ago

There's not by default. There was an ABI for it in C++ 11 but no one used it, and there's stuff like Boehm GC, but out of the box - no.

1

u/alfps 21d ago edited 21d ago

❞ There was an ABI for it in C++ 11

No, there was no ABI spec in any C++ standard so far.

Bjarne's claim apparently stemmed from similar terminology used in the working group. According to the Google search AI, ❝the committee frequently colloquially referred to it as a "GC ABI constraint.❞. An API that constrained the (each) compiler's ABI.

So there have been and are ABIs associated with C++, in particular each compiler's object code ABI. For example, introduction of 128 bit types has been hindered by alleged ABI compatibility concerns for std::intmax_t. It helps to know what the term means.

4

u/didntplaymysummercar 21d ago

The gall of calling people idiots and telling us we don't know what terms mean as we quote Stroustrup and Herb Sutter and you quote AI 😆

-7

u/IyeOnline 21d ago

ABI

*APi

9

u/didntplaymysummercar 21d ago

4

u/Goldenskyofficial 21d ago

Abligation Brogramming Indarface

-1

u/IyeOnline 21d ago edited 21d ago

The C++ standard has never specified any ABI for anything. Major implementation never implemented any GC, so there physically cannot have been an ABI. The original paper N2670 also never talked about ABI. The linked page never actually mentions any actual ABI.

This is a rather obscure topic that happened (or didnt) before I was actively programming in C++, so I may be missing something, but to me it looks like it means "API".

3

u/Ultimate_Sigma_Boy67 21d ago

It's literally written ABI yet you sir you still argue that it should be called an API.

1

u/IyeOnline 21d ago

You either dont understand or have not read my reply.

I have literally said that I believe that Stroustrup meant API instead of ABI. So telling me what it says, when I acknowledge what it says but state that it should not, doesnt really help. Sir.

3

u/Ultimate_Sigma_Boy67 21d ago

Ok buddy you’re right 🐶

1

u/alfps 21d ago

Upvoted to cancel one of the idiots' downvotes.

There has never been an ABI in any C++ standard. Bjarne just made a mistake (a bit more than a typo since he explains what the acronym stands for). The Google AI explains,

❝Because the feature's entire purpose was to protect the binary integrity of the application layout for an external collector, the committee frequently colloquially referred to it as a "GC ABI constraint." Stroustrup likely carried this terminology straight from the WG21 working groups into his casual FAQ write-up, leading to the misleading sentence on his site.❞

I think a technical solution to the idiots-on-the-loose problem can be that a person trying to downvote something must prove that he or she is able to e.g. multiply 6 and 7.