Именно. И тогда после того как сформирован tuple, отпадает необходимость отсылаться к частному типу из vector. И тогда возможность построения универсальных алгоритмов на этом существенно возрастает.
Этот вариант не совсем подходит под универсальные, он под фиксированное количество полей. Но его можно поменять на вариадичный, нужно будет сделать функцию сравнения вариадичной, и вызывать ее из такой findFirst. Непосредственно здесь ошибочка, возврат ссылки на локальное значение в случае не найденности.
Так я и говорю, покажите как именно этот вариант примените хотя бы к std::sort, сколько это дополнительных строк возьмет. Ну или может на бустовских каких-нибудь функциях. Как вы будете суммировать такую колонку, и т.д. У меня же то же, не запрещается использовать свои лямбды без макросов, о чем я и писал.
Будет интересно посмотреть на обвес, когда вы попробуете написать поиск по двум колонкам.
Вот мой вариант, без макросов. А у вас как будет? Весь код не обязательно, только сам поиск, и объявления дополнительных функций, если таковые нужны. Но если доп.функции отсылаются к типу Row, то это прицеп раздувающий код, а не либу.
Зачем здесь прилепили getMemberRef это не понятно.
А вот если бы показали, как суммировать, сортировать, поиск значения. Как это все раздувается и обвешивается дополнительными конструкциями, и код становится ради кода, а не ради результата.
Где вы видите двиганье данных? Индекс, это вектора указателей, разложенные по мапам или просто упорядоченные. Т.е. когда я пишу что можно работать с std::vector<Row*>, не меняя синтаксиса, то это это самое и будет.
И поясните пожалуйста, что за способ доступа к полям структуры вы предлагаете без макросов? Знаю, что есть тип указателя на метод класса, который можно использовать в шаблоннах, но его использование, это нечто жуткое, конструкуции будут многоэтажными.
А на счет multi_index, спасибо, позже посмотрю, что можно от-туда взять себе в пользование.
Вот если бы приводили примеры, как делать такие же штуки, не обременяя многоэтажными выражениями, было бы замечательно.
Если про uBlock origin, я его попробовал, он с яндекса рекламу поубирал, которую я ему указал, но часть потом появилась обратно. Я ее снова поубирал, и она снова появилась. AdBlock (какой-то) примерно так же убирает, а потом она появляется.
Всякая реклама роликов и каналов с главной страницы поубиралась. Но та, что реклама от яндекса, она возвращается. В почтовой странице, в погодной, и на главное имеется. Причем не сразу, а некоторое время спустя. Использую Chrome на Ubuntu.
каждый класс должен иметь только одну причину для изменения
Смысл этого предложения несколько кривой, наверное ты подразумевал «иметь одну ответственность». И дальше следует категоричное «Все дальнейшие проблемы от этого».
Согласно этому принципу, если мне в функцию размером в страницу кода нужно добавить новое условие, то я должен сделать копию этого кода и менять в копию. Ведь это уже другой смысл — «А» это не «А+Б». Когда понадобиться восемь доп.условий, то это уже 256 потенциальных страниц копий кода. И потом еще на каждый вызов иметь switch/case то же на 256 позиций — это что бы не заморачиваться, которые варианты из этих 256 все же нужны для текущего случая.
Я с этим очень согласен, но выход то какой? Делать функции на 12 страниц?
Нужно как-то все же обосабливать хоть какие-нибудь блоки, даже если это приводит к некоторому увеличению кода, и если обособления в них даже не видишь.
Просто потому, что когда читаешь код, его пытаешься располжить в свою быструю память, а она ограничена. Пыешься охватывать взглядом блоки, объемы которых могут быть схвачены за один взгляд. И т.д.
И вот нужно как-нибудь разбивать на подфункции, или как-либо по другому делать разметку, что бы было удобно читать такой код. Однозначных рецептов нет, но если не пытаться, то вообще не будет разбивки.
не совсем понятно, что хотели получить на выходе, но мне кажется, что бота для онлайн игры
Хотели получить выигрышную программу на халяву или как минимум за очень дешево. Хотели меня обманом под это подписать. Меня это растроило, и я все что успел придумать опубликовал здесь.
Посоветуйте вашему заказчику найти покерного тренера. Неделя тренировок за $500-$1000 помогут ему уверенно обыгрывать большинство катранов
У этого способа есть целых два препятствия: здесь нужно работать (над собой), и здесь нужно платить. Не все могут осилить хотя бы одно.
Будет интересно посмотреть на обвес, когда вы попробуете написать поиск по двум колонкам.
Вот мой вариант, без макросов. А у вас как будет? Весь код не обязательно, только сам поиск, и объявления дополнительных функций, если таковые нужны. Но если доп.функции отсылаются к типу Row, то это прицеп раздувающий код, а не либу.
Зачем здесь прилепили getMemberRef это не понятно.
А вот если бы показали, как суммировать, сортировать, поиск значения. Как это все раздувается и обвешивается дополнительными конструкциями, и код становится ради кода, а не ради результата.
И поясните пожалуйста, что за способ доступа к полям структуры вы предлагаете без макросов? Знаю, что есть тип указателя на метод класса, который можно использовать в шаблоннах, но его использование, это нечто жуткое, конструкуции будут многоэтажными.
А на счет multi_index, спасибо, позже посмотрю, что можно от-туда взять себе в пользование.
Вот если бы приводили примеры, как делать такие же штуки, не обременяя многоэтажными выражениями, было бы замечательно.
Но оно снова появляется.
Что бы скрыть в почте рекламу, потребуется скрывать наверное всю левую панель со структурой папок. Скрывать только рекламный виджет я пробовал:
В странице с погодой, там вообще жестко, после попытки скрыть, оно появляется при следующем обновлении страницы.
Тут нужно что-то более заточенное под яндекс. Типа плагин скрывающий рекламу яндекса. Я бы поставил такой.
Всякая реклама роликов и каналов с главной страницы поубиралась. Но та, что реклама от яндекса, она возвращается. В почтовой странице, в погодной, и на главное имеется. Причем не сразу, а некоторое время спустя. Использую Chrome на Ubuntu.
Эта статья у Ивана кажется уже где-то была, я это уже читал где-то.
Смысл этого предложения несколько кривой, наверное ты подразумевал «иметь одну ответственность». И дальше следует категоричное «Все дальнейшие проблемы от этого».
Согласно этому принципу, если мне в функцию размером в страницу кода нужно добавить новое условие, то я должен сделать копию этого кода и менять в копию. Ведь это уже другой смысл — «А» это не «А+Б». Когда понадобиться восемь доп.условий, то это уже 256 потенциальных страниц копий кода. И потом еще на каждый вызов иметь switch/case то же на 256 позиций — это что бы не заморачиваться, которые варианты из этих 256 все же нужны для текущего случая.
Нужно как-то все же обосабливать хоть какие-нибудь блоки, даже если это приводит к некоторому увеличению кода, и если обособления в них даже не видишь.
Просто потому, что когда читаешь код, его пытаешься располжить в свою быструю память, а она ограничена. Пыешься охватывать взглядом блоки, объемы которых могут быть схвачены за один взгляд. И т.д.
И вот нужно как-нибудь разбивать на подфункции, или как-либо по другому делать разметку, что бы было удобно читать такой код. Однозначных рецептов нет, но если не пытаться, то вообще не будет разбивки.
Хотели получить выигрышную программу на халяву или как минимум за очень дешево. Хотели меня обманом под это подписать. Меня это растроило, и я все что успел придумать опубликовал здесь.
У этого способа есть целых два препятствия: здесь нужно работать (над собой), и здесь нужно платить. Не все могут осилить хотя бы одно.