Berkus
tdesktop/Telegram/SourceFiles/settings.h:139:10: warning: enumeration values 'dbisAuto', 'dbisOne', and 'dbisScaleCount' not handled in switch [-Wswitch] switch (cScale()) { ^ нде, кодец там конечно
Berkus
это unrelated
Berkus
Во
посмотри пока изменения, скажи если надо что-то по другому лучше сделать, пока сделаю паузу https://github.com/berkus/tdesktop/tree/cmakeify
Berkus
там wip ветка, потом переорганизую все коммиты как положено
🦥Alex Fails
там wip ветка, потом переорганизую все коммиты как положено
Слушай. Вроде норм патчи, хотя я уже чот не особо соображаю. @Dead_Pegasus , @crackedmind - можете глянуть?
Berkus
я завтра еще буду генераторы добивать, они там кучу сорсов еще производят из стайл-файлов
🦥Alex Fails
О, отл
Square
Пофладить идите во @fludpac
Anton
Народ есть вопросик... Как по феншую можно хранить объекты класса std::function? Кейс такой, что есть список обработчиков(обычные функции), которые должны храниться и при определенном условии выполняться каждая в отдельном потоке. Я хочу их складывать в std::set«std::function» чтобы потом доставать оттуда и выполнять.
Крылатый
unordered_map тут полущ будет, разве нет?
Крылатый
Или как доставать собираешься?
Anton
ну контейнер меня мало пока волнует. там по 3 обработчика на контейнер будет. больше замануха с std::function сейчас интересует
Dr. Friedrich
Я бы тупо в вектор сложил. Ну и, да, вполне нормально складывать std::function для дальнейшего использования.
Aleksei
Так в чем вопрос-то? В выборе конкретного контейнера?
Крылатый
Там разве что в перфомансе слегка проигрыш. Но не шибко большой.
Крылатый
Можно свой фугкщон написать.
Крылатый
Функшон*
Anton
а передавать "указатель" на функцию через лямбду? или есть какие-то варианты поинтереснее? можно через struct с переопределенным оператором () еще
Square
а передавать "указатель" на функцию через лямбду? или есть какие-то варианты поинтереснее? можно через struct с переопределенным оператором () еще
ну я согласен с коллегами выше - если нет особой претезнии к перфомансу, то любое работающее, а самое главное - легкое для восприятия - решение будет норм
Nikita
unordered_map тут полущ будет, разве нет?
Нафига меп, на что меппить?
Anton
не понятно наверное написал))) Короче есть метод класса, которому надо передавать функцию(по факту объект класса std::function) и этот метод уже положит std::function в контейнер. И где-то в другом методе уже выполняются эти std::function's
Крылатый
Nikita
Спроси автора
Автору сет нужен
Nikita
Словарь-то зачем?
Крылатый
Шобы было.
Anton
вопрос как красиво из обычной функции сделать std::function и передать его в функцию(по ссылке наверное). Ну и сами объекты std::function они в контейнере по ссылкам лежат?
Square
Словарь-то зачем?
да какая разница. ему потом просто достать это нужно
Dr. Friedrich
Вектор с дубликатами бороться не будет
Меня пока не убедили, что это нужно.
Dr. Friedrich
В данном случае, я имею в виду.
Anton
Вектор с дубликатами бороться не будет
именно поэтому про set я написал))
Anton
http://en.cppreference.com/w/cpp/utility/functional/function
Anton
вот тут есть пример как берут print_num и через лямбду делают std::function
Anton
не нравится))
Alexey
/help@FailsBot
FailsBot
USAGE: /help - prints this message; /vzhuh [message] - do vzhuh; /start - info about bot.
Anton
Метода пока нет. только думаю. метод AddHandler (берет ЧТО_ТО. хз что). Внутри этот метод должен сделать контейнер из std::function
Aleksei
ну так и принимай сразу function
Anton
а первый пример?
первый еще больше не нравится)))
Aleksei
почему?
Anton
у меня изначально есть сишные функции. прям реально сишные))
Anton
их много. трогать их не буду.
Aleksei
так там и есть сишная
Anton
ну там же структура
Anton
аааа, блин. первый в main который идет. да все
Aleksei
void print_num(int i) { std::cout << i << '\n'; } std::function<void(int)> f_display = print_num; f_display(-9);
Aleksei
где струкрута?
Anton
протупил)) вверху. я сверху читал пример,а не с начала main функции))
Anton
ну т.е. вообще халява получается, определяем AddWatcher(std::function<void(int)>). И просто даем ему обычные простые функции.
🦥Alex Fails
Ага
Aleksei
Поэтому и не был понятен вопрос
Anton
Да я блин перемудрил чето. Все же вон по примеру прям.)) Спасибо!
Anton
А контейнер set навреное возьму. Простое спасение от дубликатов
Aleksei
А зачем от дубликатов спасаться? Захотел кто-то дважды колбек получать - пусть получает
Anton
не должен хотеть дважды в одном наборе обработчиков. Это прям жесткое условие. А пользоваться этим куском будут так, что всякое будут туда пихать))
Berkus
std::function враппит функтор, то есть в принципе всё, что имеет operator() - функции, лямбды, структуры и классы с таким оператором
🦥Alex Fails
/staff
Kanat
На андроид есть компилятор с плюс плюс
Berkus
есть, в составе android-ndk
Berkus
бери ndk-r13b там уже c++14
Светомеч
На самом андроиде есть офигенная штука от Ромы
Светомеч
Рекомендую "C4droid - C/C++ compiler & IDE" https://play.google.com/store/apps/details?id=com.n0n3m4.droidc
Berkus
о, прикольно, надо посмотреть будет, спасибо!
Светомеч
Даже куте поддерживает
🦥Alex Fails
Да, давно видел эту штуку на 4пда. Крутая, но терминал в итоге понравился больше
Anonymous
Термух тема реальнее
Andrei
вопрос как красиво из обычной функции сделать std::function и передать его в функцию(по ссылке наверное). Ну и сами объекты std::function они в контейнере по ссылкам лежат?
По значению. Std::function конструируй просто из указателя на функцию. Если еще нужен захват то конструируй из лямбды или std::bind
Andrei
Но не всё можно запихнуть в std::function.
Andrei
std::function не обернет movable-only объект.
Andrei
У std::function сторейджа под них нет.