Олександр
https://stackoverflow.com/a/13722515/7735950
cyberzx 🇷🇺
А теперь для сравнения тоже самое но с std::function https://godbolt.org/g/TpoJiP
Олександр
Хм, спасибо Но все еще не будет инлайнить, если передавать как указатель
cyberzx 🇷🇺
Ну это опять type erasure. Конечно нужно передавать тип лямбды, что бы вместе вызова компилятор чётко знал, какую функцию вызывает
cyberzx 🇷🇺
Но даже если передавать лямбду как указатель, всё таки инлайнить компилятор может https://godbolt.org/g/ocQDGs
cyberzx 🇷🇺
Но это если сама функция принимающая указатель другой функции инлайнится
Ivan
Парни, вы киборги.
Ivan
У меня остался маленький вопрос со статической памятью. Всё-таки, сами статические данные рядом лежат или этого никто не знает в каких кусках памяти (статической) они будут?
cyberzx 🇷🇺
Это ж constant propagation
Ну вот без неё https://godbolt.org/g/7Z9LAe
Dmitry
привет, а у нас есть чят по winapi, кстати?
Dmitry
и вообще по кодингу для шиндошс
Олександр
Ivan
char* a = “aa"; char* b = ”bbb”; данные лежат друг за дружкой?
cyberzx 🇷🇺
не зайдли на godbolt.org и посмотри )
Ivan
Оу, я уже с телефона
Ivan
И там ассемблер
cyberzx 🇷🇺
Как минимум всё это завист от платформы, компилятора
cyberzx 🇷🇺
И что? Самый просто язык
Ivan
Меня удволетворяет этот ответ)
Ivan
Надо с MIPS какого-нибудь начать
cyberzx 🇷🇺
80% кода состоит из 20% команд
Олександр
Надо с MIPS какого-нибудь начать
См. компилятор MIPS там же
Ivan
Я как-нибудь опущусь на самое дно. Но это время надо.
Олександр
char* a = “aa"; char* b = ”bbb”; данные лежат друг за дружкой?
Тут неверный синтаксис. Если ты про константы, то они просто хранятся в object file (вместе с программой) Если ты про память, то не обязаны
Ivan
Я не про константый указатель на строку, про обычный
Олександр
Это от системы зависит
Aidar
не обязаны
Aidar
это разве не супапро?
Ivan
Ахаха
Ivan
Нет.
Aidar
вот посмейтесь кто не видел
Aidar
было bool try_pop_front(T &result) { lock_t hlk{head.m}; if (!head.next) return false; lock_t lk{head.next->m}; result = std::move(head.next->data); auto removed = std::move(head.next); head.next = std::move(removed->next); return true; }
Aidar
стало bool try_pop_front(T &result) { lock_t hlk{head.m}; if (!head.next) return false; lock_t lk{head.next->m}; result = std::move(head.next->data); auto removed = std::move(head.next); head.next = std::move(removed->next); lk.unlock(); return true; }
Vergil
Здравия всем
Vergil
есть ли канал по cmake?
Vergil
кто знает такой?
Aidar
вот посмейтесь кто не видел
это приводило к дедлоку на libstdc++
Vergil
ясненько)) Ну и ладно)
Vergil
буду читать оф. доки тогда. Хотя они явно не так хороши как ТС++
Pavel
Vergil
простенькие проекты могу описывать в cmake нормально.. Но вот захотелось подключить одну либу, и всё покатилось в.....
Vergil
больше недели борюсь с этим
Vergil
не то.. Библиотека JUCE. Предоставляется в виде cpp/h файлов и просто подключается к проекту не компилируя отдельно
Vergil
беда в том, что есть там introjucer, который разруливает все зависимости и флаги
Vergil
introjucer не умеет в cmake
Vergil
он умеет visual studio
Vergil
а мне vs противен
Vergil
так проблема то не в библе.
Vergil
то, что introjucer не умеет в cmake - не значит что её нельзя так подключить
Vergil
пробовал.. И пару других. И дописывать пытался
Vergil
и эту тоже
Vergil
не работают они.. Особенно с пятой версией
Vergil
на последней cmake вообще ругается на то, что скрипт неправльно описан
Vergil
с пятой версией juce
Vergil
если заведётся - буду век благодарен)
Vergil
а если ещё и кроссплатформенно...
Vergil
эту не находил
Vergil
и он тоже не подерживает пятый jucce
Vergil
Requirements CMake, version 3.4 minimum JUCE, version 4.2.0 to 4.3.1 (JUCE 5 is not supported yet)
Vergil
у кого?
Vergil
у juce же нет свой системы
Vergil
introjucer просто создаёт проектные файлы xcode, vs, linux makefile
Vergil
и там прописывает зависимости
Vergil
а они у них захардкожены))
Vergil
да нет.. это просто программка с готовыми шаблонами проектных файлов
Vergil
в этих шаблонах уже прописаны все зависимости для разных платформ
Vergil
а так да.. лучше бы сделали бы норм доку что надо подключать к проекту и какие флаги есть
Vergil
как это делают все
Vergil
Вроде он и простой, а один фиг завести у многих не получается
Vergil
а писать на vs не многие хотят
Vergil
там даже нет генерации makefile для винды и os x
Vergil
хотя бы такого....
Vergil
Anton
JUCE с MinGW разве вообще заводится? У меня были попытки, но это реально пандец.
Anton
Лучше уж какое-нибудь Nana юзать, чем это даже при условии, что сама либа хорошая.