Хочется срача по сабжу, но без эпистолярных рассуждений, а чисто на примерах кода.
- Rust фанат кидает пример C++ говнокода.
- C++ енджоер объясняет, что данный код в 2024 все C++ разрабы пишут не так (и показывает как) и никаких проблем не может быть.
И наоборот.
Например мне Rust-фанаты кинули такое:
#include <iostream>
struct Data {
const int &ref_;
explicit Data(const int &_r)
: ref_(_r) {
}
void print() {
std::cout << ref_ << "\n";
}
};
int main() {
Data t(42);
// Тут ты умер - попытка напечатать 42
// по ссылке на него, тогда как 42 давно
// не существует (оно существовало только
//во время вызова конструктора Data())
t.print();
return 0;
}
Но выяснилось, что Rust-фанаты наврали, потому что C++ такое тупо не скомпилирует, если вызывать компилятор с нормальными пацанскими опциями «просто не пропускай херню»:
g++ test.cpp -O3 -Wall -Werror