
Max
13.08.2018
11:29:42
линух крут ? ну правда с 3.17 начиная ... на виндосе этот код запуска страниц 5-7 кода занимает

Evgeniy
13.08.2018
11:30:20
омг https://twitter.com/SylvainCorlay/status/1028939731860635649

Alexandr
13.08.2018
12:37:37
линух крут ? ну правда с 3.17 начиная ... на виндосе этот код запуска страниц 5-7 кода занимает
Во время поисков способа сделать это я наткнулся на статью, где было описано как это сделать на виндузах, не больше 100-150 строк это заняло.
Способ на виндузах мне больше нравится, ибо можно после выполнения загруженного кода можно с ним ещё что-нибудь сделать, например зашифровать обратно.
В линуксах же реализация этого заняла бы как раз дохреналион строк, т.к системный вызов, который выполняет прогу из памяти, "затирает" текущий процесс, как, собственно, и другие вызовы выполнения программ, разве что кроме fork

Alex Фэils?︙
13.08.2018
13:11:27

Google

Alex Фэils?︙
13.08.2018
13:14:45

Аттрибутивно-ассоциативный ряд
13.08.2018
13:15:16
Добрый вечер. есть функция, кторая возвращает unqiue_ptr. Eсть ли разница между return {} и return nullptr? https://godbolt.org/g/su1huC

Ignat
13.08.2018
13:16:12
https://godbolt.org/g/Zd4m23

Alex Фэils?︙
13.08.2018
13:16:26

Аттрибутивно-ассоциативный ряд
13.08.2018
13:19:57

Alex Фэils?︙
13.08.2018
13:21:23
У вас есть парсеры которые разбирают протоколы на линейной памяти, они проверены, написаны тесты, все по правила, представьте себе, что данные приходят кусками, и эти данные копировать в линейную память запрещено. Удобно было бы воспользоваться локальной виртуальной памятью для превращения их в линейную, и использовать уже написанные парсеры для линейной памяти. Надеюсь я объяснил. Конечно, можно переписать парсеры, и все сделать по другому. И я даже не спорю, что возможно будет работать быстрее.
Для решения такой проблемы существует паттерн проектирования Адаптер


Aidar
13.08.2018
13:23:45
У вас есть парсеры которые разбирают протоколы на линейной памяти, они проверены, написаны тесты, все по правила, представьте себе, что данные приходят кусками, и эти данные копировать в линейную память запрещено. Удобно было бы воспользоваться локальной виртуальной памятью для превращения их в линейную, и использовать уже написанные парсеры для линейной памяти. Надеюсь я объяснил. Конечно, можно переписать парсеры, и все сделать по другому. И я даже не спорю, что возможно будет работать быстрее.
Удобно было бы не завязываться на указатели
Вы сделали ошибку не применив вначале итераторы

Alex Фэils?︙
13.08.2018
13:24:06

Aidar
13.08.2018
13:26:00
А можно замапать кусок памяти в память?

Alex Фэils?︙
13.08.2018
13:26:23
Через аналог mmap

Alexandr
13.08.2018
13:26:41

Max
13.08.2018
13:27:44
ну если чистый код то да
если это .exe/dll - то несколько страниц кода

Google

Alex Фэils?︙
13.08.2018
13:28:27

Alexandr
13.08.2018
13:28:43
понял

Friedrich
13.08.2018
15:33:14

Alex Фэils?︙
13.08.2018
15:33:34
/cppref memory_resource

FailsBot
13.08.2018
15:33:58
Search results for "memory_resource"
1. <memory_resource>
2. std::pmr::memory_resource
3. <experimental/memory_resource>
4. std::experimental::pmr::memory_resource

Kirill
13.08.2018
15:33:59

Аттрибутивно-ассоциативный ряд
13.08.2018
16:06:31
а почему boost::optional::is_initialized() deprecated но только в документации но не в заголовке?

Alex Фэils?︙
13.08.2018
17:02:29
Надр патч закинуть

☭
13.08.2018
19:57:57
блин, серьёзно? стандартный модуль cmake определяет дирку для конфигов как /usr/etc/<PROGNAME>???

Alexandr
13.08.2018
20:14:19
Есть ли в стандартнвх библиотеках функция для разделения строки по разделителю?

Alex Фэils?︙
13.08.2018
20:15:08
strtok)
а вообще - проще сделать find_if кмк

Anton
13.08.2018
20:21:20

Stanislav
13.08.2018
20:36:56
Есть ли в стандартнвх библиотеках функция для разделения строки по разделителю?
template <typename InIt, typename OutIt, typename T, typename F>
InIt split(InIt it, InIt end_it, OutIt out_it, T split_val, F bin_func)
{
while (it != end_it) {
auto slice_end (find(it, end_it, split_val));
*out_it++ = bin_func(it, slice_end);
if (slice_end == end_it) { return end_it; }
it = next(slice_end);
}
return it;
}
https://github.com/PacktPublishing/Cpp17-STL-Cookbook/blob/ce2b8ae0aa4b1c36902ec9c838fa1e152699b590/Chapter06/split.cpp

Nik
14.08.2018
02:48:57
Бустовый сплит позволяет делать вектор string_ref а не заниматься тупым копированием строк

Ilia
14.08.2018
08:11:26
Вопросы уровня новичка - @supapro.

Stanislav
14.08.2018
08:11:30

Roman
14.08.2018
08:25:20
Интересно, а почему unified call syntax или extension functions не приняли в стандарт? Вижу много пропозалов на эту тему, но в драфте C++20 ничего на эту тему нет

Google

Ilia
14.08.2018
08:26:40

Roman
14.08.2018
08:27:25
в моей команде поэтому все срут сотни public методов вместо того чтобы free functions писать.

Ilia
14.08.2018
08:27:42


Roman
14.08.2018
08:28:44
Ну видимо у меня недостаток джавового бекграунда
Ну и опять же Мейерс аргументирует против паблик методов. Идеальный код - минимальный паблик интерфейс у класса, остальное всё extension методами, которых в c++ нет
Хотя вроде как в Resharper проблему частично решили https://www.reddit.com/r/cpp/comments/6ik3p4/now_that_modern_ides_support_dotcomplete_to_free/ , жаль его нет под linux
'''tvaneerd C++ Committee, Lockfree, Postmodern
3 points · 1 year ago
This is awesome. We could continue down this road by never updating C++ and instead just have our IDEs enable us to type in whatever syntax we want, and autoconvert to C++. We could each have our own favourite syntax! '''
Там ещё прикольный пример для UFC c chaining приводят
collection.filter(..).sort().map(..)..

Ilia
14.08.2018
08:44:01

Igor
14.08.2018
08:55:19

Roman
14.08.2018
08:59:28
и как трейтсы в расте, и как exension functions в котлене
думаю просто ещё не достаточно раскрученная фича

Евгений
14.08.2018
09:00:42
когда модули завезут?

Ilia
14.08.2018
09:01:08

Roman
14.08.2018
09:01:14
в последнем посте саттер написал что будут на следующем митинге модули отдельно обсуждать
вроде как пропосалы на модули от ms и google слили в один
хотя я не понимаю зачем модули нужны большинству людей

Google

Евгений
14.08.2018
09:03:45
Как минимум это должно ускорить сборку проектов, которые на них будут написаны.

Дед Пегас
14.08.2018
09:04:17
Да банально удобство.

Igor
14.08.2018
09:04:32
@antoshkka кажется говорил что модулям будет посвящено отдельное промежуточное заседание где-то в сентябре, хотя возможно я путаю с какой-то другой фичей вроде концептов

Евгений
14.08.2018
09:04:34
Ну и отсутствие сайд-эффектов инклудов - тоже норм тема

Roman
14.08.2018
09:04:36
ну я вот сейчас работаю с клангом, вроде как проект большой, а собирается достаточно быстро

Дед Пегас
14.08.2018
09:04:54
Можно будет адекватнй развить инфраструктуру как в других языках а ля Rust/Haskell, да даже JS
Плюс разграничение уровней доступа на уровне модуля. Типа public члены модуля, private