Show newer

@vaporeon_ did you know that std::endl not only adds a newline but also inexplicably calls a method on the underlying "output stream instance" representing the console output, meaning that writing std::cout << "Hello world" << std::endl is less performant than writing std::cout << "Hello world" << "\n";?

re: no image desc 

@vaporeon_ T&& is an "rvalue reference to T" which is a whole can of worms I am not going to explain right now

no image desc 

@vaporeon_ not object-oriented but still pretty bad

@aschmitz @aescling @vaporeon_ today you are my favorite masto user who username's first syllable sounds like "ash"

@vaporeon_ someone in a reddit comment said they actually saw this in their company's production code so even if its wrong, its out in the wild somewhere

@vaporeon_ you have already put more thought into that hack than i ever have by writing this comment

c++ 

i am starting to think that c++ value categories are the most challenging concept ever created by man

C++ does not fit into my brain
Just let me program C like Kernighan & Ritchie intended

@vaporeon_ i must be misremembering what i saw. i'm trying to find it but i can't. for now just forget about that one

@vaporeon_ I don't know what this is doing but it looks evil:

const char* seed = "random seed";
RAND_seed(seed, sizeof(seed));

The following snippet which assigns to an rvalue, something you're not supposed to be able to do:

#include <iostream>
class A{};
int main() {
const A a;
std::cout << &(A() = a) << "\n";
}

using the ternary operator to conditionally change what variable is assigned to:

int main() {
int a;
int b;

// do stuff, also assign to a and b

(a < b ? a : b) = 3;
}

The following is actually valid C++ code:

https://www.google.com

Operator overloading lets you do plenty of absurdities. You could, for example, override <= such that it behaves like a "move assignment":

class A {
public:
int num;

A& operator<=(A& other) {
this->num = other.num;
return *this;
}
};

int main() {
A a;
A a2;

a.num = 1000;

a2 <= a; // move a's content to a2
};

There's certainly more but this is plenty of evil shit.

@vaporeon_ :

Show older
📟🐱 GlitchCat

A small, community‐oriented Mastodon‐compatible Fediverse (GlitchSoc) instance managed as a joint venture between the cat and KIBI families.