Как заменить зависимость Node.js от `require ()` динамическим импортом ES6?

Это можно сделать с помощью lambda в C ++ 11 (проверено в G ++ 4.8.2).

Учитывая это многоразовое typedef:

template<typename T>
using deleted_unique_ptr = std::unique_ptr<T,std::function<void(T*)>>;

Вы можете написать:

deleted_unique_ptr<Foo> foo(new Foo(), [](Foo* f) { customdeleter(f); });

Например, с помощью FILE*:

deleted_unique_ptr<FILE> file(
    fopen("file.txt", "r"),
    [](FILE* f) { fclose(f); });

При этом вы получаете преимущества безопасной от исключения очистки с использованием RAII, без шума try / catch.

0
задан ESR 17 January 2019 в 00:33
поделиться