Используя gvim для печати diffs?

Я верю, что это именно тот случай использования изменяемой лямбды. Если вы не хотите, чтобы все переменные были изменяемыми, я предлагаю просто создать класс функторов с одним полем mutable. Таким образом, вы получаете лучшее из обоих миров (хорошо, это не так кратко). Дополнительным преимуществом является то, что operator() равно const (что совершенно верно, поскольку оно всегда возвращает одно и то же значение)

#include <optional>

int heavy_calc() {
    // sleep(7500000 years)
    return 42;
}
struct my_functor {
    mutable std::optional<int> cache;
    int operator()() const {
        if (!cache) cache = heavy_calc();
        return *cache;
    }
}

int main() {
    my_functor foo;
    return foo() + foo();
}
6
задан Paul Tomblin 17 November 2008 в 15:49
поделиться

1 ответ

Я не думаю, что существует способ добраться рядом распечатка этих двух файлов, являющихся diffed. Но, Вы могли использовать инструмент "Convert to HTML" Vim на каждом из этих двух файлов, являющихся diffed, и распечатать их отдельно. Вы могли затем сложить их рядом для получения того же эффекта.

Преобразуйте в HTML, вид "симпатичной печати" - это сохраняет всю визуальную информацию цвета/синтаксиса/сгиба.

:he convert-to-HTML
4
ответ дан 16 December 2019 в 21:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: