Рубрика «преобразование»

Польза от бесполезного: синтез УФ-поглощающих химических соединений из шелухи орехов кешью - 1

Лето неуклонно движется к своему логическому завершению, но это не значит, что солнечные деньки закончатся с приходом сентября. Пляжи все так же будут страдать от переизбытка людей (слова настоящего интроверта), а люди будут и дальше страдать от практически неотъемлемого атрибута пляжного отдыха или дачного огородопопакверхукопания — солнечных ожогов. Благо сейчас есть уйма кремов и лосьонов, которые могут предотвратить превращение человека в запеченную помидорку. Проблема в том, что большинство таких средств защиты изготавливаются из неорганических веществ, которые получаются тем или иным способом из природных ископаемых, которых, как мы знаем, не так и много осталось. Решить эту проблему, по мнению ученых из Витватерсрандского университета и их коллег из Германии, Танзании и Малави, может шелуха орешков кешью. Что такого особенного в кешью, как ученые превратили шелуху в солнцезащитный крем, насколько такое средство эффективнее и чем оно лучше имеющихся сейчас на рынке? Обо всем об этом мы узнаем из доклада исследовательской группы. Поехали.Читать полностью »

Удобное преобразование перечислений (enum) в строковые в С++ - 1У перечислений есть множество способов применения в разработке. Например, при создании игр они используются для программирования состояний персонажа или возможных направлений движения:

enum State {Idle, Fidget, Walk, Scan, Attack};
enum Direction {North, South, East, West};

Гораздо удобнее, когда во время отладки в консоль выводится сообщение типа “State: Fidget” вместо “State: 1”. Также частенько бывает нужно сериализировать перечисления в JSON, YAML или иной формат, причём в виде строковых значений. Помимо того, что строковые воспринимать легче, чем числа, их применение в формате сериализации повышает устойчивость к изменениям численных значений констант перечислений. В идеале, "Fidget" должен ссылаться на Fidget, даже если объявлена новая константа, а Fidget имеет значение, отличное от 1.

К сожалению, в С++ нет возможности легко конвертировать значения перечислений в строковые и обратно. Поэтому разработчики вынуждены прибегать к разным ухищрениям, которые требуют определённой поддержки: жёстко закодированным преобразованиям или к использованию неприглядного ограничительного синтаксиса, наподобие Х-макросов. Кто-то дополнительно использует средства сборки для автоматического преобразования. Естественно, это только усложняет процесс разработки. Ведь перечисления имеют свой собственный синтаксис и хранятся в собственных входных файлах, что не облегчает работу средств сборки в Makefile или файлах проекта.

Однако средствами С++ можно гораздо проще решить задачу преобразования перечислений в строковые.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js