↑↑↓↓←→←→ⒷⒶ Войти !bnw Сегодня Клубы
УНЯНЯ. У нас есть немножечко инфы об этом пользователе. Мы знаем, что он понаписал, порекомендовал и даже и то и другое сразу. А ещё у нас есть RSS.
Теги: Клубы:

Отлаживаю программы на MPI вот так:

mpirun -n 4 st -e gdb -ex run ./main
#YS0YNM (0) / @fix / 3822 дня назад

Писать эффективные вычматы на чистом C — содомия, поскольку кроме убогого препроцессора средств метапрограммирования нет.

Альтернатвы:
1) Более лучший препроцессор, например erb (Ruby). Минус — неудобно возиться с получившимся выхлопом (отладка, балансировка скобочек, етц).
2) Языки, в которых можно явно указать, какие вычисления будут происходить в compile-time. Например, C++ (шаблоны, constexpr).

Хочу попробовать D в качестве второй альтернативы. Есть гнутый компилятор, который [по мнению авторитетных анонимных экспертов] даёт на выхлопе код, не хуже, чем gcc.

#T9QP8L (8+1) / @fix / 3951 день назад

Вот есть такая штука:

template<class F>
void foo(F f) {
    for(int i = 0; i < 100; i++)
    f(i);
}

Наверное, это очевидно, но gcc не инлайнит¹ вызов f, если f - это функция. Поэтому приходится писать

template <void f(int)>
void foo() { /* ... */ }

Либо оборачивать f в какую-нибудь лямбду или класс с оператором ().


1) На самом деле инлайнит, если foo() используется только один раз в коде.

#OC494I (12) / @fix / 3951 день назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.