Pull to refresh
190
0
Михаил Быстрянцев @horror_x

Программист

Send message
А оно вообще работает?
Более того, видел у знакомого даже какую-то специализированную программу для просмотра через торренты — по аналогии с онлайн-кинотеатрами. Там прям каталог, выбираешь фильм, затем выбираешь раздачу и можно смотреть, работает гладко. Наверняка какая-то известная вещь и скорей всего таких много.
По чему в комтете отвергают '@' ведь это ни с чем не спутаешь и сразу понятно о чём речь.
Наверное из-за того, что он в декорированных именах используется. Хотя и в таком случае проблемы не вижу.

Мне тоже не нравится, что не применяют давно обкатанные в других C-подобных языках практики и слишком сильно пекутся об обратной совместимости.
А мне кажется, что любая моя идея в схожих обстоятельствах наверняка придёт в голову большинству людей с аналогичной квалификацией. А потом смотришь на какие-нибудь конференции или статьи, где рассказывают очевидные вещи или решения, и думаешь, что не хотелось бы оказаться в такой ситуации.

Ну и ценность потенциального обмена опытом под вопросом — для начинающих слишком сложно, а бывалые и сами всё знают.
вы просто припёрлись в тред с криками «удаляйте статью, таким умным и уникальным разработчикам как я, такие статьи не нужны».
Ого, что ещё за меня додумаете?

Скучайте по временам когда ваши «уникальные» навыки были кому-то нужны, а теперь вам приходиться ныть на форуме, что ваши навыки потеряли актуальность?
Нет, просто сетую на то, что из решения интересных задач это становится обыкновенной рутиной, где даже такие вещи как в статье выделяются на фоне.

Вы их не обсуждайте.
Что ещё мне нельзя делать?
Эх, а когда-то это было очевидным инженерным решением. А теперь с разработчиками с «ассетным» мышлением зачастую сложно обсуждать трюки, выходящие за рамки стандартных возможностей Unity или UE.
Программа написанная на языке microScript транспилируется в javascript.
поскольку рефлексия может успешно использоваться в качестве таких фабрик
Повторюсь: дело не в рефлексии, а в том, что шаблоны C++ и шаблоны C# это совершенно разные вещи.

Шаблоны в C++ — это заготовки кода, который генерируется только при инстанциации этого шаблона. Этот код учитывает размеры и расположение в памяти, а так же прочие особенности этих типов вроде конструкторов, деструкторов, операторов и т.п.

Шаблоны в C# — это обобщение типов. Это не требует заранее генерировать код на каждый возможный вариант, т.к. в generic-виде они все обрабатываются общим механизмом в рантайме.

Если бы в C# были шаблоны как в C++, никакая рефлексия бы не помогла. И, в то же время, ничего не мешает в C++ поверх языка реализовать такой же механизм обобщения типов, как в C#.
на обычном С++ без всякой рефлексии
На костылях и особенностях компиляторов.
template <typename E>
constexpr auto n() noexcept {
  static_assert(is_enum_v<E>, "magic_enum::detail::n requires enum type.");
#if defined(MAGIC_ENUM_SUPPORTED) && MAGIC_ENUM_SUPPORTED
#  if defined(__clang__)
  constexpr string_view name{__PRETTY_FUNCTION__ + 34, sizeof(__PRETTY_FUNCTION__) - 36};
#  elif defined(__GNUC__)
  constexpr string_view name{__PRETTY_FUNCTION__ + 49, sizeof(__PRETTY_FUNCTION__) - 51};
#  elif defined(_MSC_VER)
  constexpr string_view name{__FUNCSIG__ + 40, sizeof(__FUNCSIG__) - 57};
#  endif
  return static_string<name.size()>{name};
#else
  return string_view{}; // Unsupported compiler.
#endif
}
Значит я неверно понял задачу. Конечно, шаблонный тип на лету не составишь, но в таком случае не спасёт и рефлексия. Т.е. это вовсе не проблема отсутствия рефлексии, для C++ единственный вариант это заранее инстанцировать все возможные варианты шаблонов.

к примеру, из XMLки, причём число комбинаций очень быстро выходит за тот уровень
Вообще слабо могу себе представить кейс, когда любой тип создаётся по внешнему вводу без ограничений. Это же как минимум небезопасно.
Почему вряд ли возможно? Это же прямая рабочая аналогия, тип динамически задаётся в рантайме (то что под капотом там не рефлексия по сути не имеет значения, работает ведь одинаково).

Например, в Qt есть тип QVariant, который по сути удобная обёртка для таких вот вещей. И это отлично работает.
Насчёт исключений согласен. Если можно оформить более читаемо (в виде таблицы, например), то почему бы и нет.

А насчёт проблем с восприятием разреженного кода — это скорей вкусовщина и дело привычки. С однострочными if беда в том, что условие всегда разной длины, и в любом случае приходится искать глазами где оно кончается. А двустрочные if без фигурных скобок просто опасны — очень легко в состоянии потока добавить строчку-другую, забыв про необходимость блока.

Мне приходилось одновременно вести проекты на Java/Go/C++ с разными кодстайлами, и всё-таки вариант, где после if чётко выделялся выделяется блок переносами строк, в итоге воспринимался гораздо лучше. Всё потому, что всё всегда на одних и тех же позициях относительно начала строки, нет необходимости взглядом парсить условие, чтобы найти начало блока или выражения. В итоге такой разреженный код можно осознанно скроллить гораздо быстрее, чем более плотный. Блоки в if'ах выхватываются взглядом моментально.

То же касается разделения логически связанных участков кода пустыми строками — это разгружает мозг при чтении кода. Код более разреженный, но воспринимается гораздо лучше.
Используйте меньше фигурных скобок и переносов строк, старайтесь писать условные конструкции в одну строку. Так код будет быстрее компилироваться и занимать меньше места.
Так речь конкретно про типовые циклы и смежные случаи, где форма записи не имеет значения, но многие без объективных причин зациклены именно на префиксной, аргументируя это тем, что «ну так вроде быстрее».
Вообще не понимаю этой моды на префиксную запись. Это давно уже никакой практической пользы не несёт, лишь единообразие кода нарушает. Такое ощущение, что это либо позерство, либо нежелание отказываться от старых привычек и идти в ногу со временем.

Похожие чувства возникают, когда вижу как на современных версиях C продолжают писать как 30 лет назад. Принципиально объявляют переменные отдельно в начале функций, игнорируют существование const и т.п., хотя код всё равно не совместим с C89.
Так в этом и «проблема» (для «владельцев»), что большинству вообще плевать на NFT. Владельцы часто хотят признания права собственности всеми, а не только такими же как они (если их устраивает признание только в рамках клуба владельцев, то проблемы действительно нет).

С криптовалютой достаточно сформировать цену путём спроса, и она работает независимо от мнения тех, кто её не признаёт. А тут появляется потребность в признании всеми.
когда с квантовыми вычислениями ее сломал
Да там по алгоритмической сложности прирост лишь квадратичный. Т.е. будет, к примеру, RSA-4096 ломаться как RSA-2048, и то если на итерацию будет уходить столько же времени. Что так, что этак — умрёшь раньше.
Ну это типа как «сертификат подлинности», а точнее «принадлежности». Даже если поменять пиксель, всё равно будет более ранняя запись с аналогичной картинкой, так что доказать кто был первый будет несложно.

Другой вопрос, что практического смысла в этом мало, юридически это всё равно ничего не докажет. Просто спекуляция на стремлении людей чувствовать, что они единолично чем-то владеют.
регулируя эпигенетику
Звучит крайне несуразно. Может «регулируя эпигеном»? Эпигенетика — раздел генетики, науки.
где на 3ем курсе пишут с нуля реализацию трассировки лучей с тенями.
Как же я завидовал знакомым из другого ВУЗа, которые на смежной специальности свою файловую систему разрабатывали в качестве курсовой, в то время как мы всякие сортировки пузырьком писали.
Кликбейт какой-то. Уверен, что в этой ситуации диплом можно было успешно защитить и с любой другой темой и игра тут не играет основополагающую роль.

Information

Rating
Does not participate
Location
Ростов-на-Дону, Ростовская обл., Россия
Date of birth
Registered
Activity