В библиотеке motif используется похожее на java stream цепочки. В этой библиотеке используется простые функции (статические методы) более приближенный вид к switch.
Сначала в проекте решено было использовать утилиту secure-delete. Но нужно установить и проверить где установлена. Что не очень хорошо.
Потом подумали чтобы через JNI привязать код secure-delete. И так и сделали.
Но когда нужно было отлаживать, вот тогда стало плохо. Потому что в secure-delete очень много макросов.
Потом посмотрев на современный С++ решили реализовать на чистом С++.
Для проверки в fs::exists(std::path), нужен объект std::path. То есть на момент проверки, файл еще не открыт (например через fopen()), а выполняется проверка пути к файлу. Открытие файла осуществляется в момент перезатирания файла.
Приложения писалося для ПК, и для удаления/затирания подошло очень хорошо. Если есть какие-то замечания по коду, буду очень рад замечанием. Можете писать issues на github. code
Спасибо за статью. Вот паттерн патчинг и в Java завозят. Хотелось также чтобы type test pattern также работал и с switch. Не хватает также deconstruction pattern и других паттернов. Но думаю, должны со временем завести.
Хотя многие паттерны можно реализовать и в виде библиотеки, но поддержка на уровне языка это круто.
Да проект Loom, много обещающий и это будет хорошо если в будущем в Java внедрят файберы. Но сейчас можно как альтернативу использовать нативные корутины или что другое.
JVM написана на С++. Если не ошибаюсь в текущем коде используется С++98. Но есть предложения использовать С++14 во внутреннем коде JVM JEP 347. А о нативных корутинах, которые используются в статье используется С++2а(С++20). Поэтому может быть в далеком будущем, когда код JVM переведут на С++20(С++98 => C++14 => C++20) в JVM реализуют легкие потоки на нативных корутинах.
Спасибо.
Очень интересное предложения - std::embed. Если шанс что такое завезут в C++23/C++26?
http://open-std.org/JTC1/SC22/WG21/docs/papers/2020/p1040r6.html
А есть ли какие-то продвижки по предложению Герба Саттера - static exceptions?
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0709r4.pdf
А есть ли какие-то продвижки по pattern matching?
Можете подсказать, ведуться какие-то работы по добавления, аналога gsl::non_null?
https://github.com/microsoft/GSL/blob/main/include/gsl/pointers
Было б класно также, иметь и nullable в парочку.
Интересно узнать, есть ли какие-то продвижения по контрактах?
Хотелося б иметь такое в стандарте.
Интересно узнать, почему не завезли такие возможности.
constexpr class
static operator()
Portable assumptions - [[assume(condition)]]
#warning
Вот читал в документе, и казалося что должны добавить.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1018r14.html#P2350r2
Для патерна ConstantPattern не для всех matches пока есть as(). В будущем будет добавлено.
https://github.com/klappdev/jpml/blob/master/test/org/kl/jpml/test/ConstantPatternTest.java
В конце визова println() нужно ставит запятую ",".
Как параметры функции.
Спасибо за замечения поправлю в статье.
Потом подумали чтобы через JNI привязать код secure-delete. И так и сделали.
Но когда нужно было отлаживать, вот тогда стало плохо. Потому что в secure-delete очень много макросов.
Потом посмотрев на современный С++ решили реализовать на чистом С++.
code
Хотя многие паттерны можно реализовать и в виде библиотеки, но поддержка на уровне языка это круто.