The Noncrement Operator
Why is this Languages meme funny?
Level 1: Push And Pull
This is like putting a sticker on a door that says "push-pull" at the same time and then asking what kind of door action that is. It looks like it should mean something, because both words are real instructions. The joke is that combining them this way makes a ridiculous command, so programmers start inventing silly names for the nonsense.
Level 2: Two Operators Collide
The operator ++ usually means "add one." The operator -- usually means "subtract one." They can appear before or after a variable:
++i; // add one before using i
i--; // use i, then subtract one
The image combines them around the same variable: ++i--;. At first glance, a beginner might think it adds one and subtracts one, so nothing changes. That is the "noncrement" idea.
The problem is that programming languages have strict rules about how expressions are grouped and what kinds of values can be modified. A variable like i is a place in memory. But the result of i-- is more like a produced value, not the original place you can immediately modify again. So applying ++ to that result is not allowed for normal integer variables in C and C++.
This is why CompilerErrors and LanguageQuirks fit the meme. The symbols are valid individually, but the full expression is not a useful operation. It is the sort of thing that teaches new developers an important lesson: operators are not just decoration. Their position, precedence, and result type all matter.
Level 3: Preincremental Regret
The sticker shows a huge C-family-looking expression:
++i--;
The caption asks:
What would you call this operation? (Wrong answers only)
noncrement? Ex-crement?? Less-crement???
The joke starts with the fact that ++ and -- are real operators in languages like C, C++, Java, JavaScript, and C#. ++i means "increment i before using its value." i-- means "use i, then decrement it afterward." Put them together as ++i--; and the expression looks like it should perform some elegant net-zero integer ritual. It has the visual confidence of code and the semantic stability of a chair with no legs.
For ordinary C or C++ integers, this is not a clever way to add one and subtract one. It is invalid. Postfix decrement binds tightly, so the compiler effectively sees the inner operation as i-- and then tries to apply prefix increment to the result of that operation. But the result of built-in postfix decrement is not a modifiable storage location you can increment again; it is a temporary value. The compiler is not confused. It is offended in a very specific, standards-compliant way.
That is why SyntaxAbuse is the perfect tag. The expression abuses the surface grammar of familiar operators. It is built from pieces every C-family programmer recognizes, yet the combination crosses from "quirky" into "why are you like this?" The semicolon at the end makes it funnier because it presents the whole thing as a complete statement, as if someone actually intended to ship it.
The deeper developer humor is about readability and intent. Even if a language with overloaded operators could be coerced into making some version of this meaningful, the question becomes: meaningful to whom? Operator overloading can make domain code elegant when the operators match a natural model, like vectors or matrices. It can also create tiny hieroglyphics that require a compiler, a language lawyer, and a team retrospective to understand. There are easier ways to express "do nothing" than making the reviewer reconstruct value categories over lunch.
The "wrong answers only" prompt turns the compiler error into a naming contest. Noncrement captures the apparent net effect: increment and decrement cancel out. Ex-crement abuses the shared suffix with peak immaturity, which is exactly the appropriate level of dignity for ++i--;. Less-crement suggests decrement won the argument. None of these names need to be valid because the expression itself is already cosplay syntax.
Description
The image shows a small rounded rectangular sticker or card on fabric, filled with a soft purple-to-teal gradient. In large white symbols it displays the code-like expression "++i--;" with a semicolon at the end. The sibling metadata caption asks, "What would you call this operation? (Wrong answers only)" and suggests joke answers like "noncrement," "Ex-crement," and "Less-crement." The humor comes from combining prefix increment and postfix decrement syntax into an absurd C-family operator expression that looks meaningful but invites compiler and readability complaints.
Comments
54Comment deleted
It is both pre- and post-regret: the compiler rejects it before code review gets the chance.
экскремент, yeah Comment deleted
translate excrement Comment deleted
Bipolar-crement Comment deleted
Crement Comment deleted
unconfidencremention Comment deleted
the pythonist's nightmare Comment deleted
diversifier Comment deleted
numeric ensurer (ensures that a variable is numeric, and if not, casts it to a numeric value) Comment deleted
Also using it in a statement makes the number be 1 bigger and after its read out it will restore it Comment deleted
bug report last seen: 24.11.2012 Comment deleted
😂😂😂😂 Comment deleted
Why does your username look like a public GPG key? Comment deleted
looks like simple password Comment deleted
peacock operator Comment deleted
Use this when you have to write a statement without necessarily doing anything 😎 Comment deleted
Heisenberg-operator Comment deleted
I'd call it i + 1 Comment deleted
Thread-unsafe NOPcrement Comment deleted
Remaincrement Comment deleted
Placebo Comment deleted
fapcrement Comment deleted
incrementde Comment deleted
what's the difference with just I then? Comment deleted
Fakerement Comment deleted
Crementcrement Comment deleted
ReadIndexAsCountEment Comment deleted
incremen't Comment deleted
SegmentationFaultCrement Comment deleted
Wrong only? Is there a right one? Comment deleted
right one: syntax error Comment deleted
Reincremention Comment deleted
Preinpostdecremention Comment deleted
Incrementionbeforedecremention Comment deleted
Preincrementopostdecremention? Comment deleted
Surprisesuspiciouscremention Comment deleted
WannaBeOneMore? WhatIfItWasBigger? WhatWouldTheNextNumberLookLike? Comment deleted
Literally 99% of the commentors don't know that this is not doing nothing... int i = 1; print(i); print(++i--); print(i); Output: 1 2 1 Comment deleted
I told Preincrementopostdecremention Comment deleted
> Wrong answers only Comment deleted
Bicrement Comment deleted
nop Comment deleted
Trans non-binary addition Comment deleted
C(r/l)ement Michailescu Comment deleted
Jackfrescrement Comment deleted
Its a mysterious way to write i+1. It's very good because it adds a veil of mystery to your code so noone can read it Comment deleted
i think it is untranslatable, but idk Please use English as main language in this chat --- translate your message or mark as untranslatable Comment deleted
Cuffcrement Comment deleted
plusplusiminusminussemicolumn Comment deleted
++i--; side view of a person driving an army jeep without wheels Comment deleted
That's just i+1 but harder to read Comment deleted
nope the -- cancels it out Comment deleted
The -- cancels it out AFTER returning the incremented value Comment deleted
jokecrement Comment deleted