Maxim
Я, кстати, тоже не понимаю
KosBeg
*g++
Igor
а зачем именно фотка?
перекинуть за пределы телеграммчика
Igor
https://wandbox.org/permlink/hIu3RKHDiBch4fUm
вон там разбор был, полистай вверх-вниз по диалогу
Maxim
Ну, я могу понять (&$ <&_), но два раза && зачем?
Александр
&& - оператор взятия адреса метки в gcc
Maxim
Круть
Maxim
Спасибо
Tengiz
Привет! Вопрос про type trait для generic lambda (lambda с auto) Можно ли сделать type trait чтобы отличить generic lambda с разным количество параметров? Например, мне хотелось бы уметь отличать auto f1 = [&]{ \* code *\ }; от auto f2 = [&](const auto& arg){ \* code \* }; и от auto f3 = [&](bool flag, const auto& arg){ \* code \* };
Tengiz
Для обычных lambda это можно делать например с помощью std::result_of или с помощью declval
Tengiz
Обычную лямбду я имею ввиду [](int arg){}; , т.е. там где тип уже есть.
Vladislav
я понимаю, но как с помощью result_of понять количество аргументов, не зная конкретные типы?
Tengiz
как-нибудь так - template<typename T, typename R = typename std::result_of<T(bool)>::type>
Tengiz
где T это лямда
Tengiz
а количество наверное никак
Vladislav
а количество наверное никак
ну вот и для generic так же
Vladislav
Tengiz
Собственно количество параметров узнать не так важно. Хотелось бы уметь отличать f1 от f2 и от f3
Evgenii
А как это делать?
не покатит, потому что у тебя и в 2 и в 3 один auto
Evgenii
так не все параметры auto иногда
но можно просто заметить все типы на auto и легким движением рук превратить плюсы в питон
🐙 Antony
Вот так попробуйте https://github.com/boostorg/callable_traits
🐙 Antony
документация вот тут http://boostorg.github.io/callable_traits/doc/html/index.html
🐙 Antony
* сам не смотрел, но подозреваю что умеет
Evgenii
#include <auto> auto main(auto) { auto; }
универсальная программа?
Vladislav
да
Aidar
лол
Vladislav
Tengiz
Библиотека любопытная, но большенство необходимых type traits не поддерживают generic lambda
Constantine
Хм... наверное можно сделать тип, который вообще ни к чему не приводится, и если в лямбду подставилось - точно шаблонный
Constantine
Типа enable_if обойдет?
Aidar
тебе кажись хватит
Tengiz
тебе кажись хватит
Да, должно хватить
Aidar
можно было обойтись decltype от вызова
Constantine
да не работает [](auto argument) -> decltype(argument::return_type)
Vladislav
там есть is_invokable
is_invokable и в c++17 есть
Vladislav
но оно и так через result_of легко делается, по идее
Tengiz
Увы, в проекте нет C++17
Aidar
Увы, в проекте нет C++17
template <typename Func> auto test(Func f) -> decltype(f(std::declval<bool>())) { return f(true); } int main() { auto asdasd = [](auto aa) { return aa; }; test(asdasd); }
Evgenii
A Type Sanitizer (LLVM) https://reviews.llvm.org/D32198
Tom
Ок, спасибо буду пробовать
https://godbolt.org/g/wxaEk3 Штука есть такая — detection idiom. С помощью нее удобно такие вещи писать.
Ioann_
Ребята, беда такая: есть QTreeWidget, и туда ставлю свои виджеты, наследованные от QWidget. Далее, рисую в вьпорте QTreeWidget, все рисуется, но вот рисуется именно что в дереве виджетов, а на кастомных виджета - нет ! То есть рисунок находится ЗА НИМИ ! Как его вывести вперед ?
Ioann_
Aleksandr
тебе нужно вручную отрисовать сначало элементы а потом поверх рисунок
Aleksandr
например в нашей любимой телеге так перерисовываю список контактов при наведении (ну несовсем так но смысл тот же)
Ioann_
Блин, а по другому никак ? Ну, даже так, а как перерисовать вот эти вот кнопочки раньше чем ... ? Их отрисовкой не я маюсь, а виджет, видимо
Ioann_
То есть я вызвал некий метод класса КуТриВиджет, который эти виджеты туда установил, вот и все... Дальше оно там как то само рисуется, и как этим управлять ???!
Ioann_
Можно конечно всякие ехал сигнал через сигнал видит сигнал и руку в сигнал написать, но черт побери я когда со своего движка уходил смотрел в сторону кути именно по причине того, что там много всего и все легко делается, но пока что не так... Да и ограничений много(в т.ч на вложенные классы)
Anatoly
Кури делегаты Qt
Anonymous
Кто чем занимается?)
Anonymous
Кто чем занимается?)
🦥Alex Fails
/rules
Vladislav
не надо флудить
Danil
кстати, а батлер умеет отправлять в RO?
🦥Alex Fails
да, но там мало опций пока что
Danil
просто мб явный шлак перманентом банить, а других на время в RO, образумиться
vladislav
Ребят, тупенький вопрос, на как правильно работать с таким кейсом? Есть некий дабл, есть некий процент, нужно взять процент от дабла и округлить полученное значение. Например double = 10.0, процент = 65%, берём 65% от 10, ожидаем получить 6.5, но на практике получаем 6.4999999, из-за чего округление неправильно работает, как в общем случае такие ситуации обрабатывать?
Dmitrii
Это не ошибка округления, а принципиальная проблема представления десятичных чисел в бинарной форме. Если ты знаешь, что тебе достаточно одного знака после запятой, то можешь просто печатать с точностью до одного знака — тогда произойдёт округление. Нужно знать больше о контексте твоей задаче, чтобы предложить более оптимальное решение.
🐙 Antony
https://habrahabr.ru/post/112953/
Dmitrii
👍🏼
ep
С decimal там ничего не планируется в стандарте?