Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>EP>using namespace std;
// Bad practice?
EP>struct Complex
EP>{
EP> double re = 0., im = 0.;
EP>};
EP>Complex operator+(Complex x, Complex y)
// Copy constructors ( Complex const &x, )
EP>{
EP> return {x.re + y.re, x.im + y.im};
EP>}
EP>Complex operator*(Complex x, Complex y)
EP>{
EP> return {x.re*y.re - x.im*y.im, x.re*y.im + x.im*y.re};
EP>}
EP>Complex random_complex()
EP>{
// std::rand: #define RAND_MAX /*implementation defined*/. What's the magic number 1000?
EP> return {rand() / 1000. - 1000., rand() / 1000. - 1000.};
EP>}
EP>int main()
EP>{
EP> constexpr auto N = 1u << 24;
// Magic number?
EP>
Как там насчёт stack trace в лог при исключении?
EP>Простоту работы со struct-like вещами, а конкретнее — скорость выполнения и удобство кода.
EP>P.S. На Java можно писать быстрый код, но если выходить за рамки каких-то примитивнейших случаев (типа сортировки массива int'ов)
Нужно сделать то же самое, но с объектами на Java- и сравнить производительность.
EP> — то приходится работать против языка, а не вместе с ним — нужно отказываться от GC и даже классов,
Для начала находить узкие места профилировщиком.