Search
Write a publication
Pull to refresh
9
0
Арлен Кешабян @arlen_albert

Программист

Send message

Ну можно использовать и void* и union :)
Как говориться, на вкус и цвет :)

… и кстати auto vacuum опциональный и его можно не включать. В этом случае, проверка на expiry и удаление данных будет происходить только при доступе к ним. И, как-раз в этом случае, expiry_cache будет работать в один поток :)

Кстати, мой expiry_cache поддерживает разное время хранения для данных. Да и разные типы в одном контейнере можно держать при помощи std::any или std::variant. Хотя, Вам решать, что и как использовать :)

Ну ничего. Может со временем появятся и для Вас интересные решения в nstd.
А можете дать ссылку на более гибкий шедулер?

Спасибо большое за дельные советы и замечания. Попытаюсь в ближайшее время поправить.

Манеры

Манеры… Всем что-то и как-то не нравиться в этой жизни. Я считаю, главное в хороших манерах, подумать что и как ты говоришь. Взаимоуважение, я считаю, это необходимое качество для нормального общения. Но, по большей части, Ваши слова в комментариях имеют унизительный характер в мой адрес. Может Вы и отличный программист, а вот как человек в общении как-то не очень, извините.

Да, Вы правы насчёт ссылок. Поправил. Данные переносятся теперь в новые экземпляры relinx_object.

Везение тут не причём. Либо работает, либо нет.
Запрет копирования — это не костыль, а by design.

Простите, но Ваша манера тыкать носом без объяснения причин выглядит не по-людски, я бы сказал даже агрессивно.
перенос по-умолчанию в вашем случае также некорректен


Ну так и поясните почему. Или я недостоин? :)
1. Я понял Вас. Спасибо, поправлю. Но, тем не менее, я не считаю эти «аллокации» слишком большой проблемой. Просто, простор для оптимизации ;) Хотя, Ваше замечание считаю было по делу )

2. Ваш код, с последними моими изменениями в коде relinx_object (где я удалил конструктор копирования), выводит результат 15.
Кстати, GCC с флагами -Wall -Wextra -Wpedantic ругался только 'warning: unused parameter 'v' [-Wunused-parameter]' с сопутствующей кучей воды. Я убрал неиспользуемые параметры и вуаля:

— Build: Release-GCC in relinx (compiler: GNU GCC Compiler)---------------

x86_64-w64-mingw32-g++.exe -Wall -std=c++14 -fexceptions -O3 -pedantic -Wextra -Wall -c D:\Projects\relinx\main.cpp -o obj\Release\main.o
x86_64-w64-mingw32-g++.exe -o bin\Release\relinx.exe obj\Release\main.o -s
Output file is bin\Release\relinx.exe with size 385.00 KB
Process terminated with status 0 (0 minute(s), 12 second(s))
0 error(s), 0 warning(s) (0 minute(s), 12 second(s))

— Закомител код.
1. Укажите, пожалуйста, где происходят внезапные аллокации, чтобы, если это верно, я мог поправить код.
2. Что значит, копирование класса relinx_object? Конструктор копирования или что?
3. Я проверю на предмет forward. Мог пропустить где-то.
4. И что?

У clang-а вообще никаких претензий нет:

clang++.exe -Wall -std=c++14 -fexceptions -O3 -Wnon-virtual-dtor -Wbind-to-temporary-copy -Wambiguous-member-template -pedantic-errors -pedantic -Wall -target x86_64-w64-mingw32 -c D:\Projects\relinx\main.cpp -o obj\Release\main.o
clang++.exe -o bin\Release\relinx.exe obj\Release\main.o -s -target x86_64-w64-mingw32
Output file is bin\Release\relinx.exe with size 464.00 KB
Process terminated with status 0 (0 minute(s), 18 second(s))
0 error(s), 0 warning(s) (0 minute(s), 18 second(s))
Спасибо за информацию… Я рассмотрю Ranges как вариант…
Я хотел написать именно LINQ-подобную библиотеку, для переноса LINQ выражений из C# в C++ и наоборот.
Вариант с Ranges я рассмотрю. Спасибо.

Information

Rating
Does not participate
Location
Краснодар, Краснодарский край, Россия
Date of birth
Registered
Activity