C++ does have the problem that references are not objects, which introduces many subtle issues. For example, you cannot use a type like std::vector
, so that templated code will often have to invoke std::remove_reference
and so on. Rust opts for a more consistent data model, but then introduces auto-deref (and the Deref trait) to get about the same usability C++ has with references and operator->
. Note that C++ will implicitly chain operator->
calls until a plain pointer is reached, whereas Rust will stop dereferencing once a type with a matching method/field is found. Having deep knowledge of both languages, I’m not convinced that C++ features “straightforward consistency” here…
In the language of Polandball comics, it means "give land/territory".
"Gib" is taken from the German imperative for "give!"
Best theory is that "clay" as "land" originates from a bad machine translation.
It seems somene created a Wiki that covers these terms: https://www.polandballwiki.com/wiki/Terminology#Clay