C++ thread

Discuss why C++ is superior to other languages and showcase your latest C++ projects.
Trolls and pajeets not welcome.

Other urls found in this thread:

conan.io/.
youtube.com/watch?v=4AfRAVcThyA
open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0194r4.html
cvedetails.com/vulnerability-list/
treblig.org/daveG/rust-mand.html
doc.rust-lang.org/std/primitive.slice.html#method.swap
en.cppreference.com/w/cpp/language/reference_initialization
open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4700.pdf
perlpowertools.com/
twitter.com/SFWRedditImages

...

It's unsafe and has high mental tax with each line written

Let's talk about rust fam :

Stay in your containment thread rustfag

Rust shilling is a cuck/g/ thing, friendo. You stick out like a sore thumb, and you probably look like one in real life.

Also
Get the fuck out

muh Ada xDD
muh D xDDDD

hahahahah sure

c++ has the most sophisticated compiler ever consistently doing better than everything else rust is not gonna beat it so soon.

c++ is likely not fundementally much faster but sooooo much work has gone into micro optimizing it

you're way off fam

it provides the biggest toolset without trading off real-time performance, and lets you do things that most other languages dont like meta-programming (advanced stuff, not just type templating).

The only complaint I got is some of the tooling ecosystem.
For example dependency management was something that only recently was tackled in acceptable quality with conan.io/.

We're still stuck with shitty CMake for the most part for a cross platform project generator. There are other alternatives but I didn't find them mature enough yet.

Future C++ standards seems very promising, with things like more advanced code generation (Herb's CppCon2017 talk), better TMP (concepts), and so on.

Why doesn't it have reflection?

it wasn't standardized so far.

Reflection can be both run-time and compile-time.
AFAIK most languages that have reflection do it at run-time.
For C++ usually it was up to the programmer to implement it.

In Herb's talk he describes a static introspection (more than just reflection) system, which is really cool:
youtube.com/watch?v=4AfRAVcThyA

Because the reflection proposal ( open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0194r4.html ) hasn't been added to the standard yet?

It's easier to list features that C++ doesn't have than the ones it has. And this isn't a good thing, especially for a shitty hack on top of C.

C++ is like silicone putty, you can mold anything with it, but using it to metaphorically build a skyscraper instead of using concrete rebar means you need a train load of code.

fallacy.

Hardcoding libraries into a language standard doesn't mean you can't use 3rd party libraries in languages that don't.

At best it's a trade-off between having a bloated language vs adding libs to a project.

Does it have stable ABI yet?
Does it have the official standard available freely?
Do changes in a class implementation still require recompilation of the code which uses this class via its interface?

it's not metaprogramming dude, it's a horrible abuse of templates.
proper metaprogramming is when the code is almost as straightforward as usual code, that means its intent is not obfuscated. a good example is LISP, and Clojure in particular. TMP on the other hand is a special olympics started after the discovery that templates were accidentally turing complete.

but maybe recent standards do improve on that?

not sure about the 2nd point, but 1 and 3 are complete bullshit.
it's been proven to have UB in "safe" subset.
and fighting with borrow checker is not for everyone, and certainly many "Ruby developers" won't be able to master that.

a glaring example is the following:
in an AoC thread, every day there were solutions posted in many languages, including Rust. then came the day with a problem which requires handling of tree data structure (or graph, don't remember exactly). for some reason there were no Rust solutions posted on the same day for this problem.

How would you design a C++ meta programming syntax that is also backwards compatible to the C language?

No, but the working drafts are about just as good.

Oh fuck off. C++ people bitch all the time about how backwards compatibility with C makes C++ worse (macros, arrays, preprocessor are all evil go figure) until someone dares suggest improving the language and then backwards compatibility with C becomes good and important again... in the same language that deprecated C's standard header filenames back in 1998. Just fuck off, really.

So I'll answer your idiotic question by asking an idiotic question of my own: how exactly is the current metaprogramming syntax backwards compatible with C seen how the template, typename, class keywords don't exist in C to begin with?

What about SCons?

The point of the C++ template syntax is so that there is no ambiguity in which parts are related to template programming. C++ was a language designed so that people can take C code and just plop it into the C++ code and C++ compiler. They needed a way to provide the template metaprogramming facitility on top of all this.

You could simply answer "No"—I didn't ask for excuses.
And what about the other 2 questions?

Hi, I'm a piece of C code which you need to compile as C++.
I have a thousand or two functions, variables and typedefs named 'template', 'typename', 'class', 'operator', 'abstract', 'virtual', etc. hope you get the idea.

No.

So when (if ever) will C++ become memory safe?
Is it even possible?

If you have nothing to say, it's better to keep silent.
You are the reason why /tech turned to shitposting party. Please, go back to reddit.

Holla Forums has always been a shitposting party. The reason for that is quite simple: Underage NEETs don't know anything about technology. They only know their anime, vidya and browsers.

no one names their variables and functions after keywords you dumbo

Not an argument.
C is the patrician language.

cvedetails.com/vulnerability-list/

s/trician/jeet/

they are not keywords in C you dinghole

no u

So there's a keyword conflict. That doesn't change the design goals of C++.

Get out pajeet, Holla Forums is a white supremacist board.

show some code you wrote or gtfo stupid nazi LARPer.

this is what that guy initially used as an excuse for C++ ugliness. I therefore demonstrated that it's bullshit and doesn't work too.
of course I don't need nor want to do such stupid things as compiling code written in one language as another which is not backwards compatible.

Can anyone tell me why I would need to write in anything more modern than C++98 (/C++03) ?

Later standards make the language a joy to use

Do they make it memory safe though?

Just don't use raw pointers and you'll be fine.

std::vector v; v.push_back(MyObject); for (auto x : v) { v.clear(); x->whatever(); // UB}
hmmmmmm...

...

It compiles and it doesn't use raw pointers

Just stop.

Here's your last (You). Deleting containers that you loop through is not something you ever do. It's programming 101. Now you can be happy that you baited all of us but please kindly fuck off.

What should I be looking at?

Go tell that to RMS , faggot.

Trick is to write what CAN be optimized
and for that C++ is great
A lot of others try to do things that nobody sane would want or need

Kill yourself faggot

ok kid

class Foo;unique_ptr inst;class Foo {public: virtual void f(); void kaboom() { inst = NULL; f(); // UB if this == inst }};
hmmmmmmmmmmmmmmmmmmmmm...

Are you kidding? His "minimal" example makes no sense because he doesn't define a type for the vector.
But he then dereferences the object... despite claiming it's not a pointer...
Even if he hadn't fucked up the example it's not UB and in fact runs just fine. He just doesn't understand range based for loops.
Goddammit there should be like a short programming test instead of Captcha to keep all the retards away from Holla Forums


I can't even tell if I'm being trolled any more.

WEW lad. It is so easy to spot you glow in the dark CIA niggers.

The absolute state of rust shills

The absolute state of LARPers

Except it doesn't compile.

you can't be serious

Thanks captain obvious?

ok

so how do you explain that your examples don't work?
is that just because c++ is bad?

so how do you explain that c++ isn't memory safe?
is that just because c++ is bad?

i think you're just bad at c++

ok dude. i'm sure you have a perfect track record. but have you actually done more than hello world/fizzbuzz?

ok dude how about you just own up to the fact that neither of your examples compiles?
give us some working examples where you showcase c++s flaws and then we can continue the discussion because as of now you're just stalling.

cvedetails.com/vulnerability-list/

Who are you quoting?
Fucking leave, InaneBob.

Surely c++ is to blame for every documented problem with all known software. Which has other implications... including admitting irrelevancy for whatever you are shilling.

Why are you talking about c++ being memory unsafe when all the posts talk about your examples not compiling?

> (LISP))))))()(>(readable))))))()()()))(((()))))))))))))))))()))))))))))))))))))))))

TMP code is straight forward and simple. there's nothing complicated about things like std::enable_if, it's merely overloading/specializing functions.

The real downside is debugging, which is something the Concepts proposal suppose to solve.

...

In C++, metaprogramming is as straightforward as usual code. You can say the same thing about C too.

Speaking of special olympics...
This monthly posting is always good for a laugh. (You'vegot to laugh to keep from crying). The following entryneeds no further comment:40. What's the best way to write a multi-statement cppmacro?A: The usual goal is to write a macro that can be invoked as if it were a single function-call statement. This means that the "caller" will be supplying the final semicolon, so the macro body should not. The macro body cannot be a simple brace-delineated compound statement, because syntax errors would result if it were invoked (apparently as a single statement, but with a resultant extra semicolon) as the if branch of an if/else statement with an explicit else clause. The traditional solution is to use #define Func() do { \ /* declarations */ \ stmt1; \ stmt2; \ /* ... */ \ } while(0) /* (no trailing ; ) */ When the "caller" appends a semicolon, this expansion becomes a single statement regardless of context. (An optimizing compiler will remove any "dead" tests or branches on the constant condition 0, although lint may complain.) If all of the statements in the intended macro are simple expressions, with no declarations or loops, another technique is to write a single, parenthesized expression using one or more comma operators. (This technique also allows a value to be "returned.")

kys

Some user earlier who said that modern C++ is memory safe as long as you don't touch raw pointers. No idea if this is you. But I provided C++ snippets that don't use raw pointers yet still are memory unsafe.
Stop damage controlling and admit that C++ is memory unsafe.
No
No :^)

If you're talking about this "snippet" it's literally gobbledygook and not c++.

Keep telling yourself that, C++ fag. C++ is still not memory safe.

guys i am a brainlet and can't into more than 1 thing. i want to go bare-metal. recommendations plz.

asm

Try and make a copy of it that compiles if you even can. See what happens then report back with what a retard you are.

C++ is memory safe until the rustfag proves otherwise with a WORKING example

Why don't you? Probably because you can't even program.
Undefined behavior happens


Correct
That is when you C++ fags started crying
They prove that C++ is memory unsafe
C++ is not memory safe. Anyways, I asked here if modern C++ is memory safe. I got told that it is unless one uses raw pointers . The burden of proof is not on me. It is on you C++ fags claiming that modern C++ is memory safe to prove that. But you won't (can't) do that because you are just a bunch of butthurt LARPers. Why else would you bring Rust into this?

Kill yourselves

...

I showed code in the Advent of Code threads though. Also I made this . Now it is your turn. Show me some code you have written.

It's amazing that you can be so sure of what happens when you don't know enough C++ to make it compile.

It's amazing that you can be so sure that modern C++ is memory safe when you are only LARPing.

I never said it was memory safe. Just that your example isn't C++ and therefor not an argument about how memory safe it is.

I'm still waiting for proof that modern C++ is memory safe though.

I'll provide it right after you give me an example of that code that works.

hmmmmm...

Ok... so you admit that the code you provided doesn't work?

Ok... so you admit that you are just a LARPer and can't prove that modern C++ is memory safe?

...

Wrong. Nobody has done it yet. treblig.org/daveG/rust-mand.html
Wrong. doc.rust-lang.org/std/primitive.slice.html#method.swap

>>>/4chan/
>>>/reddit/
>>>/facebook/

Can't make this shit up.

Nah. Just correcting the record.

You mentally challenged homosexual, the burden of proof is on you because you are the one who made the first claim (C++ is memory unsafe). So unless you prove your claim with working and fucking sensible (not doing retarded things nobody does) code you have the burden of proof on you.

>Do they make it memory safe though?
>Just don't use raw pointers and you'll be fine.
Why are you so triggered? Is it because you know that modern C++ is memory unsafe and you can't prove otherwise? Sad.

Ahh. There it is. The standard excuse of the Holla Forums LARPer. >only bad programmers write memory unsafe code.
cvedetails.com/vulnerability-list/

I was adding information, you silly man. Maybe some poor misinformed guy thought that having access to standard was of any importance when the working drafts exist.


s/template/template_/
Problem solved.


lol, you're a joke


The use of auto (without & or &&) implies that x is a copy of MyObject. So no, "x->whatever();" is not undefined behavior.


Is this the kind of things that rust protects people from? Damn, rust really is a haven for retards.


Prove that the people responsible for these vulnerabilities are good programmers.

...

Wrong. x->whatever() is UB. But of course a LARPer wouldn't understand this.
I never made the claim that those are good programmers. I was just showing that a lot of bugs exist in popular software because of C/C++ bullshit.

Do you think this:
>

Because the object is a reference to an instance of a class that got deleted because the vector got cleared.
My point is that it does not matter if the programmers are good or bad. What matters is that there are a lot of bugs because of C/C++ in popular software.

Wrong. You're so fucking wrong. A reference would have to be written like this: for (auto& x : v) You clearly don't know what you're talking about.
This is the kind of thinking that desperately needs to disappear from the industry. It's like software engineering is the only engineering discipline where engineers are not expected to have any rigor or critical thinking. Imagine if a civil engineer fucked up badly and his bridge collapsed, killing dozens of people.

no
stop LARPing
Why are you continuously misrepresenting my point?
Again: My point is that a lot of bugs as a direct result of using shit languages (like C/C++) exist in popular software (like GNU/Linux).
Imagine if a civil engineer fucked up badly because he used shit tools and his bridge collapsed, killing dozens of people.

THIS IS NOW A RUST THREAD


THIS IS NOW A RUST THREAD


THIS IS NOW A RUST THREAD

THIS IS NOW A RUST THREAD


THIS IS NOW A RUST THREAD


THIS IS NOW A RUST THREAD

THIS IS NOW A RUST THREAD


THIS IS NOW A RUST THREAD

THIS IS NOW A RUST THREAD

THIS IS NOW A RUST THREAD

THIS IS NOW A RUST THREAD

THIS IS NOW A RUST THREAD


THIS IS NOW A RUST THREAD

yes
en.cppreference.com/w/cpp/language/reference_initialization
How is it direct if the tools don't force the programmer to write defective code?
You have never given any evidence for that. The link you posted doesn't refute the idea that bad or careless programmers are responsible for most bugs.
That would only be true if the tools actively fucked up his work, not just let him potentially shoot himself in the foot if he's careless, as is the case with C/C++.
>

This thread has convinced me that anyone talking about Rust should be autobanned.

I'm in bed right now. You will get your (You) tomorrow.
Protip: I will disagree with you

Not surprising; you don't have much more than unsubstantiated disagreements (like that dumb "no" reply) to offer.

...

This is a very good example too: there are several very obvious and known safe patterns that are simply rejected by the rust borrow checker, and workarounds require a lot of creativity to figure out. What's worse, because of how alien the implementation of the concept is, it usually has to be rewritten from scratch when a new requirement comes in (for example maybe you suddenly need your tree to hold other trees, which may or may not be the same tree, and this is not possible due to a borrow dependency loop, without a complete rewrite).

Stop lying. I posted a Rust solution on every day.

...

C++ is a good language, fuck rust

Both are complete and udder garbage.

Lol udder instead of utter

unique_ptr makes sure to automatically release the object when it's destoryed, not prevent idiots like you from existing and manually intentionally doing stupid things.

You can be a retard in any language, you could decrease reference count to 0 in managed languages and try to use the object afterwards as well.

and no. a managed language wouldn't allow you to do that.
get fucked, C++ fag

Nice overhead. FAGGOT

It's a white mans language for white men.
It has literally zero downsides to any white man.
There is no mental overhead.
There are no worries.
There are no issues.
Things get written and they work.
Only nonwhites cannot deal with C++.
C++ is like a dog, if you're not white then you can at most tolerate it, but you will never channel the dogs potential into greatness like a white man.
You will never care as much for the dog like a white man.
That's why animal welfare, too, is implicitly white with very few shitskins.
It is also the same for environmental care.
The modern, white mans environment for the subhuman nonwhites, especially "present time" nonwhites is too confusing.
Their countries are filled with trash, often plastic, littered around their living spaces and rivers because nonwhites are used to only working with biodegradable, primitive resources they can just drop on the ground and have them rot away, while the nonwhite subhuman knuckle drags to the next point of its interest.

This is the ultimate truth.
The plastic bottles in your river are testament to that, angry shitskin which is inevitably typing up an angry reply to this.
But your bottles betray you, you dumb undercreature.
They betray you just as your tainted blood curse betrays you.

C++ Heil!

Travel more.

That's like asking me to eat a turd.
Not my kinda thing.

Actually the working draft by the Committee always include the current, complete, standard and point the direction the next version will go in. For example this includes all of C++17, and whatever new that has been promoted to the point that it is practically guaranteed to be in C++20:
open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4700.pdf

If you like C++ or C, you already do.

Are you Terry's retarded brother?

Why do you want slower programs? are you a fucking cuck?

I'm only a single cuck unlike you the triple cuck.

I have and he's mostly right.
non-white = no long term planning or stewardship of environment. Circles of theft until no one has anything and no one can invest and build without it getting stolen and wrecked. Eating the seeds instead of planting. Shitting in their water sources. Resigning themselves to life as prey instead of solving their problems.

You should travel more, perhaps?

5

Test

Are you using a garbage collecting language because you're a subhuman that cannot grasp the concept of things like "plastics" that your people throw into rivers, thinking the water will just dissolve it?

C++ sucks because C is full of bullshit. AT&T shills induced Stockholm syndrome in the Ctards by exposing them to horrible syntax and semantics. C and C++ came from the same company.

I feel compelled to submit the following piece of C code: switch (x) default: if (prime(x)) case 2: case 3: case 5: case 7: process_prime(x); else case 4: case 6: case 8: case 9: case 10: process_composite(x);This can be found in Harbison and Steele's "C: A ReferenceManual" (page 216 in the second edition). They then remark: This is, frankly, the most bizarre switch statement we have ever seen that still has pretenses to being purposeful.In every other programming language the notion of a casedispatch is supported through some rigidly authoritarianconstruct whose syntax and semantics can be grasped by themost primitive programming chimpanzee. But in C this highlystructured notion becomes a thing of sharp edges and losescrews, sort of the programming language equivalent of acloset full of tangled wire hangers.

Yeah, sorry Sambo, Pajeet and Co.
I just keep getting proven right here.

Again, plastics are not a weird type of wood. You must dispose of it correctly.
You must care for your environment before you pollute electronic environments too.

Too bad the chinese cannot read "care for".
Anyone who actually travelled through China will know that they just let everything rot even if they're using it.

C and C++ and co = intrinsically white, outside of the reach of the knuckledraggers.

Find me at least one good programmer who never does these mistakes.

this will break shit because 'template' could be used not only in code, but also inside string literals, etc.
yours is a shit solution.
and C++ can't be called backwards compatible to C.

Modern cars are easy to drive because the intelligence of its designers enabled them to make something that's complicated easy to use. C is like a "car" that's made of sticks that you have to "drive" by dragging your foot outside. Ctards get into "car accidents" like impaling themselves with pointy sticks, running over their own feet while trying to stop, and other "accidents" that are so stupid they would have never happened with a real car.

Engineering schools started teaching that those were normal 70s cars to avoid offending the "engineers" from "Sambo, Pajeet and Co.", the phone company that created "C" (for car) from "automotive research" to figure out the cheapest way to distribute phone books. They discovered sticks were a lot cheaper than cars, so they went with that.

C++ is an attempt to turn that into a real car.

But it's much worse than than because you need to invokethis procedure call before entering the block.Preallocating the storage doesn't help you. I'll almostguarantee you that the answer to the question "what'ssupposed to happen when I do ?" used to be"gee, I don't know, whatever the PDP-11 compiler did." Nowof course, they're trying to rationalize the language afterthe fact. I wonder if some poor bastard has tried to do adenotational semantics for C. It would probably amount to atranslation of the PDP-11 C compiler into lambda calculus.

Start by showing how often these mistakes occur in modern C++ codebases written by good programmers. There's no point in even talking about old C vulnerabilities introduced by careless programmers.

Often enough to say that they are inevitable for nontrivial projects. Did you try searching the web?

It's still technically not backwards compatible and there are also other more subtle non-syntactical changes which you can search on the fucking web too.
If we define backwards compatible as "can be converted by means of non trivial source transformations" then languages like Pascal or even fucking Java are backwards compatible to C as well. Stop pretending to be dumb.

How is this tangled? Cases are labels not statements, they do not create a new scope and fall through. Switch is a conditional goto.

Case dispatch is much simpler than C switch. It's easier to explain pattern matching than C switch and pattern matching is a lot more powerful. Switch is not the only problem with C/C++. C has the "clockwise/spiral rule" that wastes time on mental workarounds for C bullshit. The preprocessor manages to be defined in a way that both sucks and makes no sense (but that basically describes everything in C).

OK. How about: switch (x) default: if (prime(x)) { int i = horridly_complex_procedure_call(x); case 2: case 3: case 5: case 7: process_prime(x, i); } else { case 4: case 6: case 8: case 9: case 10: process_composite(x); } Is this allowed? If so, what does the stack look like before entry to process_prime() ? I've been confusing my compiler class with this one for a while now. I pull it out any time someone counters my claim that C has no block structure. They're usually under the delusion that {decl stmt} introduces a block with its own local storage, probably because it looks like it does, and because they are C programmers who use lots of globals and wouldn't know what to do with block structure even if they really had it. But because you can jump into the middle of a block, the compiler is forced to allocate all storage on entry to a procedure, not entry to a block. But it's much worse than than because you need to invokethis procedure call before entering the block.Preallocating the storage doesn't help you. I'll almostguarantee you that the answer to the question "what'ssupposed to happen when I do ?" used to be"gee, I don't know, whatever the PDP-11 compiler did." Nowof course, they're trying to rationalize the language afterthe fact. I wonder if some poor bastard has tried to do adenotational semantics for C. It would probably amount to atranslation of the PDP-11 C compiler into lambda calculus.

I've never heard of this before and for good reason. Reading them left to right is easier and a better approach.
He used a bad argument against that. You can't claim something doesn't work by goto'ing into the middle of it. That's as stupid as saying:

The syntax of C is horrible. This bullshit void (*signal(int sig, void (*func)(int)))(int) is just int * (int -> unit) -> int -> unit in OCaml syntax. It's a straightforward left to right reading.

C is so horrible that they can't even make goto work properly.

Yes, and they've succeeded. Hordes of grumpy C hackers are complaining about C++ because it's too close to the right thing. Sometimes the world can be a frightening place. I've been wondering about this. I fantasize sometimesabout building better programming environments. It seemspretty clear that to be commercially viable at this pointyou'd have to start with C or C++. A painful idea, but.What really worries me is the impression that C hackersmight actively avoid anything that would raise theirproductivity. I don't quite understand this. My best guess is thatit's sort of another manifestation of the ``simpleimplementation over all other considerations'' philosophy.Namely, u-weenies have a fixed idea about how much theyshould have to know in order to program: the amount theyknow about C and unix. Any additional power would come atthe cost of having to learn something new. And they aren'twilling to make that investment in order to get greaterproductivity later. This certainly seems to be a lot of the resistance tolisp machines. ``But it's got *all* *those* *manuals*!''Yeah, but once you know that stuff you can program ten timesas fast. (Literally, I should think. I wish people woulddo studies to quantify these things.) If you think of aprogramming system as a long-term investment, it's worthspending 30% of your time for a couple years learning newstuff if it's going to give you an n-fold speed up later.

Best way to handle C is typecast everything to void pointers at declaration time. Also write some wrappers for all syscalls and library functions, so everything expects void pointers. Then finally you don't have to stare at such ugly code anymore.

or just use a typedef
typedef void (*sighandler_t)(int);sighandler_t signal(int signum, sighandler_t handler);
and now you are back to something readable.

It does work properly. It just branches to the label you specify. It doesn't advertise any additional behavior.

Functional programming people are the worst. I am happy that the REAL functional programming languages lost all chances into going mainstream. All those fake functional AIDS ridden dogshit like Scala and all those new hipster languages that incorporate some functional features are just the new fad for people to jerk themselves at conferences.

One block = one set of variable declarations. Used to be that they all had to be on top. You need this consistency for the rest of the block to make sense. However definitions are not required for that thus they follow a regular statement flow, so for every defaulted value horridly_complex... is evaluated and for every cased (?) value it is not and i is garbage. Entry into a procedure in a block implies entry into that block.
It makes sense, you don't want something to run if it was goto'd over, but there is no way in the language to see if a variable was succesfuly declared, thus they shall always be presumed to be. Sure, all vars on top makes even more sense but readibility and convinience trump over edge cases that can still be explained away.

monkeys aren't allowed to post here

Who's quotes are these? Just because something is in quote form, doesn't mean it's smart.

What next? Are you going to make a case for mittens being superior to gloves because gloves are too complex and might cause "some people" to snag their fingers in something?

Yeah, I'm sorry, Sambo.
The thing you dealed cheap crack for to afford it to appear hood rich and you can only drive for two miles before it needs to be taken to a (((certified workshop))) because ((( real cars ))) don't allow you to tinker with things will end up getting you killled because no manufacturer of a "real car" would want niggers around their property and settling in court is less of a hassle than dealing with you.

I'm still baffled that anything could be confused by a switch statement, though.
I bet the average border collie would understand it with some training.

Can someone point me to a grep tool written in C++ that is faster, safer and more modern than ripgrep, which is written in the safe systems language RUST?

Closest thing tbh:
perlpowertools.com/

AKA missing 90% of the features

...

Watch out because a *BSD retard will come and say "it doesn't have the same features".

Well, yes, a Ferrari does not have the same features as Ford.

...

...

Actually in some ways it has more features and more modern ones.

Those modern features are gonna be great when they break everything that uses grep and causes thousands of man hours of damage.

no thx

okay bud

If the gloves were made of pointy sticks and had to be put on your ears while hopping on one foot before you can wear them, I would prefer mittens, but I'd rather have gloves that do the right thing and make sense.

>The thing you dealed cheap crack for to afford it to appear hood rich and you can only drive for two miles before it needs to be taken to a (((certified workshop))) because ((( real cars ))) don't allow you to tinker with things will end up getting you killled because no manufacturer of a "real car" would want niggers around their property and settling in court is less of a hassle than dealing with you.
I'd have to be on crack or C++ to understand this sentence. From what I can make out, it's a good description of what it feels like to use C++.

Here's another great one:38. How can I write a generic macro to swap two values?A: There is no good answer to this question. If the values are integers, a well-known trick using exclusive-OR could perhaps be used, but it will not work for floating-point values or pointers, (and it will not work if the two values are the same variable, and the "obvious" supercompressed implementation for integral types a^=b^=a^=b is, strictly speaking, illegal due to multiple side- effects, and...). If the macro is intended to be used on values of arbitrary type (the usual goal), it cannot use a temporary, since it does not know what type of temporary it needs, and standard C does not provide a typeof operator. The best all-around solution is probably to forget about using a macro, unless you don't mind passing in the type as a third argument.

Oh no, no swap macro, I guess the language is trash

How would one even use a swap macro? I don't get it.

How about this one that works for all types?
#include #define SWAP(a,b) b,avoid main(void){ int a = 1, b = 2; printf("%d and %d\n", a, b); printf("%d and %d\n", SWAP(a,b));}

Then you'd feel right at home.

hello yes i am a troll pajeet your language is shit goodnight

bump

Who needs objects just use structs

``` c
#include
#include

static const char* meme = "* * * * *";

int main()
{
const unsigned len = strlen(meme);

for (unsigned i = 0; i < len; i++) {
puts(meme + (len - (i + !(i & 1))));
}
}
```

this code gave me cancer :D

Oh I forgot, this is not discord

Get the fuck out