Aleksei
В SFINAE не разбираюсь, но может это ?
template<typename T>
typename enable_if_t<false_type::value, bool> doSomething(T t) { doDefault(t); }
Tengiz
Aleksei
А true_type для всех?
RunOver
Всем дня фырчного
RunOver
Тут хакатон намечается от конторы IQ option, может интересно кому будет http://iqhack2017.com/
Tengiz
А true_type для всех?
Да. Т.е. с true_type можно убрать enable_if вообще. Но в таком случае будет 2 функции с одинаковыми параметрами (та что с enable_if и без enable_if) и компилятор будет ругаться на то что не может выбрать функцию.
Elena
Кто-нибудь сталкивался с подобной проблемой? не могу войти в свою учетную запись в vs17(пароль и учетка введены корректно 100проц)
Elena
у меня имеется линукс
Elena
но при чем он тут?
Tengiz
Т.е если поставить на linux visual studio 2017, то он работает нормально )
Elena
а на винду ты ставил вс?
Elena
и как? была такая проблемс?
Elena
ладн
Tengiz
Может быть поможет это решение - http://stackoverflow.com/a/42432024
Deleted Account
Richard
как будто в других осях такого не бывает
Richard
вон под виндой stack install пашет отлично, а в линуксе нет, ставь ghc отдельно.
Richard
но это убыточная тема
Richard
мне нравится и то и то, юзаю и то и то, и ошибок так, чтобы прям совсем мешало не вижу. win8.1/win10/fedora24
Deleted Account
Vlad
/stat@combot
🐙 Antony
Привет всем, вопрос про SFINAE.
Как обычно есть функция поведение которой зависит от свойств типов передаваемых параметров (наличие/отсутсвие некоторых методов, арифметрический ли это тип, и т.д.)
сейчас пачка специализаций через enable_if
template<typename T>
typename enable_if_t<has_method_foo<T>::value, bool> doSomething(T t)
template<typename T>
typename enable_if_t<has_method_bar<T>::value, bool> doSomething(T t)
и т.д.
Вопрос как добавить поведение по-умолчанию?,
т.е. если другие enable_if не специализировали функцию, то использовать эту реализацию
Я знаю что это можно делать через тот же enable_if, но с исключающими условиями:
template<typename T>
typename enable_if_t<!has_method_bar<T>::value && !has_method_foo<T>::value, bool> doSomething(T t) { doDefault(t); }
Такой способ подходит, до тех пор пока специализаций мало.
Существует ли более удобный способ использовать SFINAE, где можно было бы удобно указать реализацию по-умолчанию?
В подобных случаях можно воспользоваться трюком из Boost.Variant:
template<typename T>
typename enable_if_t<has_method_foo<T>::value, bool> doSomething_impl(T t,long);
template<typename T>
typename enable_if_t<has_method_bar<T>::value, bool> doSomething_impl(T t, long);
template<typename T>
bool doSomething_impl(T t, int) { return doDefault(t); }
template<typename T>
bool doSomething(T t, int) { return doSomething_impl(t, 1L); }
1L будет пытаться сматчится с функциями принимающими long в первую очередь. Когда все такие функции закончатся - возьмёт doSomething_impl(T t, int). Неиспользуемый параметр у шаблонной функции все современные компиляторы должны выкидывать, так что на производительность никак не повлияет.
Tengiz
В подобных случаях можно воспользоваться трюком из Boost.Variant:
template<typename T>
typename enable_if_t<has_method_foo<T>::value, bool> doSomething_impl(T t,long);
template<typename T>
typename enable_if_t<has_method_bar<T>::value, bool> doSomething_impl(T t, long);
template<typename T>
bool doSomething_impl(T t, int) { return doDefault(t); }
template<typename T>
bool doSomething(T t, int) { return doSomething_impl(t, 1L); }
1L будет пытаться сматчится с функциями принимающими long в первую очередь. Когда все такие функции закончатся - возьмёт doSomething_impl(T t, int). Неиспользуемый параметр у шаблонной функции все современные компиляторы должны выкидывать, так что на производительность никак не повлияет.
Спасибо. Красивое решение, попробую использовать его.
Square
RunOver
Evgenii
А чем плох продукт?
Просто им часто пользуются мошенники, что заставляет относится к нему скептически
Evgenii
Кроме того, что как финансовый инструмент они неоч
Square
ну и проживание в россии, как правило готовит меня к тому, что это будет не хакатон а заседание клуба млм
RunOver
Ну, на деле это будет настоящий хакатон, ибо нам влом говно проводить)
Square
я не хочу холиваров, друг, но пахнет дурно.
если у вас есть чат в тележке, где можно это обсудить, я готов джойнуться
RunOver
Чатика нет, но сейчас подумаю, организуем мб.
Evgenii
прислал(а) Hak Hagmon через @svejaquebot
Anton
Привет, коллеги!
13 мая в Минске пройдет шестая конференция по плюсам - C++ CoreHard Spring 2017 - http://conference.corehard.by/, организованная белорусским C++ сообществом CoreHard
Будем рады видеть вас в нашем любимом городе в качестве участников. Кто захочет присоединиться удаленно - приглашаем на онлайн-трансляцию (она бесплатна, регистрация по ссылочке https://goo.gl/forms/8cQWn8O5n4Bvhubn2)
Наш youtube-канал - https://www.youtube.com/channel/UCifgOu6ARWbZ_dV29gss8xw
P.S. В Беларусь россиянам виза не нужна и до Минска час лету из Москвы и Питера :)
🦥Alex Fails
🦥Alex Fails
Какими б тегами это отметить...
Danil
#potatoCxx
Danil
Всегда смешно, простите
Deleted Account
Deleted Account
😂
Deleted Account
сыкотно
Deleted Account
скажут что ездил получать госдеп взятки , арестуют отправят в сибирь
серёжа
Daniil
This
Алекс
Всем добрый вечер
Нужен человечек, кто поможет развернуть OCR для быстрого распознавания текста со скриншотов на сях.
Алекс
как вариант да
Алекс
но нужно решение подготовить на его базе и помочь внедрить в проект
Алекс
для собственных нужд
Алекс
не на продажу
Алекс
нужно встроить в проект утилиту на си++, она будет работать без инета
Алекс
т.е. автономно
Алекс
я так понимаю, там нужно по выборке обучить
Алекс
скриншоты разные и текст в разных местах
Алекс
ну в общем нужен исполнитель
Алекс
например?
Алекс
шумов нет, условно есть 30 видов скриншотов, на которых по статичному положение текст высвечвается
Алекс
фон чистый, шрифты стандартные
Алекс
он встраивается в приложение как либа (lib) файл, и в итоге можно в один бинарь всё уложить?
Алекс
или словари отдельно будут висеть?
Алекс
хорошо, спасибо за развернутый ответ
Алекс
будем пробовать
🐙 Antony
Занятная библиотека, никогда с ней не сталкивался. А кто-то пробовал её подружить с OpenCV - например обучить OpenCV понимать где текст, а где - нет (на каскадах Хаара например) + обучить поворачивать текст?
Dogma
Ты только на втором курсе?
Dogma
Весело, я на первом и хочу найти хоть какую-то стажировку, кушать то хочется хдд
Dogma
В это что то входит небольшое понимание boost и небольшой опыт в sdl2, плюс еще питончик 3.6
Dogma
Ну, ладно, плюсы тоже могу, только все еще хз на каком уровне хд
Uladzislau
а где работаешь?
babysitter
Да уж, если менять работу, то либо тебя будут унижать ребята со второго курса, либо именитые компании унижать по алгоритмам и олимпиадным загадкам. Жизнь боль.
Alexey
С опытом пройдет) будешь приходить в именитую компанию и разговаривать об архитектурах, строить и проектировать идеальные системы в ограниченых условиях) рассказывать и обсуждать с интервьюером в ламповой беседе. Без всяких униежний уже
Nikita
Alexey
Dogma
Моя проблема что до этого с плюсами я общалась лишь как олимпиадник
Alexey
Stanislav