Я лично вижу тут "вывернутую" логику. Для абстракции "точка", по сути, не сделан отдельный класс, вместо этого точка рассматривается как просто два double значения. Соответственно нет и абстракции "полилиния", которая бы состояла из "точек", и у которой был бы метод расчета отклонений точек, вместо этого голый библиотечный set. А у "точки" нет метода расчета расстояния до другой точки. Ну чтобы все было по логике вещей. Зато есть класс компаратор, который сравнивает два каких-то значения, ему все равно каких, он работает с double а не точками. Другими словами, структуры предметной области в этом коде не видно.
Я надеюсь, что отсутствие этих базовых вещей произошло из-за максимального упрощения примера, и в реальном коде у автора все что нужно есть. Но если и реальный код написан в таком же стиле, то такое построение и взаимосвязь элементов для меня выглядит странно, как бы удобно не было делать множество с заданным компаратором.
Извиняюсь, давно на плюсах не писал. Подумал что код для операции сравнения, и он должен выглядеть как operator()<, а для этого на самом деле надо использовать operator<.
Первый раз вижу, чтобы оператор () возвращал bool при сравнении своих аргументов.
bool operator() (const GVertex& a, const GVertex& b)
Что же имел в виду тут автор? Надо бы разобраться почему парсер съедает символы, придумать work around и показать читателю правильный код. А то ценность статьи с такими ошибками нуливая, только лишний раз убеждать начинающих программистов что синтаксис C++ непостижим.
Непонятно, распространяется ли требование на домашние сайты с прикрученным форумом? Как админу хоме-хоста настраивать свой форум, чтобы тот волшебным образом вычислял, что майлрушный mail.ua - это разрешенный домен, а film.ua - запрещенный?
В статье написано куча всего, но не сказано главное: как вообще работает динамический инвентарь и как его использовать. По ссылке на гитхаб мы видим использование опции -i , о которой в статье не сказано ни слова. Для чего она - автор почему-то умолчал.
Еще доставила прелестная опечатка test_inventroy.py - это, наверно, чтобы уставшие от Ansible люди были внимательнее.
Задача lcbe-бэкенда состоит в преобразовании lccrt-IR пусть и с потерями производительности в компилируемый и исполняемый Си-код.
На понял. Мы хотим скомпилировать исходник на языке Си. После всех преобразований мы получили lccrt-IR, а затем преобразуем это опять в "компилируемый и исполняемый Си-код"?
Я не понял, что нужно ответить на вопросы "Зеленая клубника и банан. Клубник 6. Бананов 2. Они красные" и "Морковь 1. 4 яблока. Фрукты красные средние, овощ желтый маленький".
Что в этой капче надо делать? Почему в статье об этом не написано?
Да, поэтому я и написал, что стать певцом не умея петь гораздо легче, чем стать программистом, не умея программировать. Второе, можно сказать, практически невозможно. А первое - пожалуйста.
софт - он либо кому-то нужен и потому востребован, либо нет, но он никого не убьет и не уложит на больничную койку.
Мда? Даже софт для МРТ, который может дать искаженную картинку, из-за которой что-то можно не заметить? Или софт для ультразвуковой диагностики? Или для рентгеновского аппарата? Или для управления оборудованием промышленного объекта, поездами, кораблями, атомными станциями?
Вы вообще понимаете, что даже неспециализированный, а десктопный софт может наворотить дел?
Но речь идет даже не об этом, а о безопасности технологического суверенитета. Кроссплатформенность обеспечивает независимость от платформы, нет привязки к вендору, и это одно из важнейших свойств, гарантирующих работоспособность кода в любых технологических и экономических условиях.
Мы сейчас уже десятилетиями оплачиваем банкет зарубежным корпорациям. Может, хватит?
А обеспечение кроссплатформенности кода вообще-то позволяет собрать хоть под MacOs, хоть под Эльбрус, хоть под этот ваш Risc-V, а не только под "две российские ОС".
Правильно было бы, если бы их к этому подталкивал рынок.
Да ладно, у евросоюза есть, например, требования к продуктам питания. Хочешь участвовать в гешефте - будь добр соответствовать правилам, которые противоречат и ограничивают концепцию свободного рынка. И ничего, кому нужно - соответствуют.
Я не понимаю, почему в обучающих примерах постоянно пляшет инициализация - то через ( ), то через { }. Как человеку, который хочет разобраться, понять, что правильно?
Я не могу прийти к этому выводу. Как вы это сделали?
Я лично вижу тут "вывернутую" логику. Для абстракции "точка", по сути, не сделан отдельный класс, вместо этого точка рассматривается как просто два double значения. Соответственно нет и абстракции "полилиния", которая бы состояла из "точек", и у которой был бы метод расчета отклонений точек, вместо этого голый библиотечный set. А у "точки" нет метода расчета расстояния до другой точки. Ну чтобы все было по логике вещей. Зато есть класс компаратор, который сравнивает два каких-то значения, ему все равно каких, он работает с double а не точками. Другими словами, структуры предметной области в этом коде не видно.
Я надеюсь, что отсутствие этих базовых вещей произошло из-за максимального упрощения примера, и в реальном коде у автора все что нужно есть. Но если и реальный код написан в таком же стиле, то такое построение и взаимосвязь элементов для меня выглядит странно, как бы удобно не было делать множество с заданным компаратором.
Извиняюсь, давно на плюсах не писал. Подумал что код для операции сравнения, и он должен выглядеть как operator()<, а для этого на самом деле надо использовать operator<.
Первый раз вижу, чтобы оператор () возвращал bool при сравнении своих аргументов.
Что же имел в виду тут автор? Надо бы разобраться почему парсер съедает символы, придумать work around и показать читателю правильный код. А то ценность статьи с такими ошибками нуливая, только лишний раз убеждать начинающих программистов что синтаксис C++ непостижим.
А это что такое, ааа?
http://zhurnal.lib.ru/cgi-bin/login
E-mail (Не публикуется. На него высылается забытый пароль)
Непонятно, распространяется ли требование на домашние сайты с прикрученным форумом? Как админу хоме-хоста настраивать свой форум, чтобы тот волшебным образом вычислял, что майлрушный mail.ua - это разрешенный домен, а film.ua - запрещенный?
В статье написано куча всего, но не сказано главное: как вообще работает динамический инвентарь и как его использовать. По ссылке на гитхаб мы видим использование опции -i , о которой в статье не сказано ни слова. Для чего она - автор почему-то умолчал.
Еще доставила прелестная опечатка
test_inventroy.py
- это, наверно, чтобы уставшие от Ansible люди были внимательнее.UPD: Если хочется понять, как использовать динамический инвентарь, следует прочитать вот эту базу: Кратко: как пользоваться динамическим инвентарем в Ansible , а затем уже наворачивать скрипты и плагины.
На понял. Мы хотим скомпилировать исходник на языке Си. После всех преобразований мы получили lccrt-IR, а затем преобразуем это опять в "компилируемый и исполняемый Си-код"?
Тогда вам повезло, что у вас есть силы на все вышеперечисленное.
Я два раза прочитал статью.
Я посмотрел примеры капчи:
Я не понял, что нужно ответить на вопросы "Зеленая клубника и банан. Клубник 6. Бананов 2. Они красные" и "Морковь 1. 4 яблока. Фрукты красные средние, овощ желтый маленький".
Что в этой капче надо делать? Почему в статье об этом не написано?
Я так и не понял, что пользователь должен делать в этой капче. Как ее проходить?
PS: Я не ChatGPT.
Но в Debian 11 Bullseye тоже LXDE 11-й версии.
Может быть, штука №1 - это просто пугалка из магазина приколов? Просто резиновая сороканожка-многоножка?
Всего один вопрос: вы, видимо, не женаты и у вас нет детей? :)
Да, поэтому я и написал, что стать певцом не умея петь гораздо легче, чем стать программистом, не умея программировать. Второе, можно сказать, практически невозможно. А первое - пожалуйста.
Мда? Даже софт для МРТ, который может дать искаженную картинку, из-за которой что-то можно не заметить? Или софт для ультразвуковой диагностики? Или для рентгеновского аппарата? Или для управления оборудованием промышленного объекта, поездами, кораблями, атомными станциями?
Вы вообще понимаете, что даже неспециализированный, а десктопный софт может наворотить дел?
Но речь идет даже не об этом, а о безопасности технологического суверенитета. Кроссплатформенность обеспечивает независимость от платформы, нет привязки к вендору, и это одно из важнейших свойств, гарантирующих работоспособность кода в любых технологических и экономических условиях.
Это понятно, но в статье перечислено:
И ни слова об отечественной ретро-электронике, как будто ее нет.
Мы сейчас уже десятилетиями оплачиваем банкет зарубежным корпорациям. Может, хватит?
А обеспечение кроссплатформенности кода вообще-то позволяет собрать хоть под MacOs, хоть под Эльбрус, хоть под этот ваш Risc-V, а не только под "две российские ОС".
Да ладно, у евросоюза есть, например, требования к продуктам питания. Хочешь участвовать в гешефте - будь добр соответствовать правилам, которые противоречат и ограничивают концепцию свободного рынка. И ничего, кому нужно - соответствуют.
Я не понимаю, почему в обучающих примерах постоянно пляшет инициализация - то через ( ), то через { }. Как человеку, который хочет разобраться, понять, что правильно?