Pull to refresh
7
0
Send message

Очень интересное предложения - 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() нужно ставит запятую ",".
Как параметры функции.
Спасибо за замечения поправлю в статье.

В библиотеке motif используется похожее на java stream цепочки. В этой библиотеке используется простые функции (статические методы) более приближенный вид к switch.
Сначала в проекте решено было использовать утилиту secure-delete. Но нужно установить и проверить где установлена. Что не очень хорошо.
Потом подумали чтобы через JNI привязать код secure-delete. И так и сделали.
Но когда нужно было отлаживать, вот тогда стало плохо. Потому что в secure-delete очень много макросов.
Потом посмотрев на современный С++ решили реализовать на чистом С++.
Как вариант можно и шифровать. Многие использует поход шифрования.
Вы не будете каждый час или каждый день затирать весь диск.
Для проверки в fs::exists(std::path), нужен объект std::path. То есть на момент проверки, файл еще не открыт (например через fopen()), а выполняется проверка пути к файлу. Открытие файла осуществляется в момент перезатирания файла.

bool kl::erase_content::overwrite_byte(const int pass, const uint8_t byte) {
	...
	this->file = kl::fs_util::make_open_file(file_name, "r+b");

	if (!overwrite_data(pass)) {
		return false;
	}

	return true;
}
Можно проверить той же Recuva, до и после затирания файлов в директории.
Приложения писалося для ПК, и для удаления/затирания подошло очень хорошо. Если есть какие-то замечания по коду, буду очень рад замечанием. Можете писать issues на github.
code
Согласен, лучше переименовать «Затирание файлов в Java»
Спасибо за статью. Вот паттерн патчинг и в 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 реализуют легкие потоки на нативных корутинах.

Information

Rating
Does not participate
Registered
Activity