<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3839536</guid>
        <pubDate>Sat, 26 Sep 2020 16:50:11 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3839536</link>
        <description><![CDATA[swf: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3839418'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>sergioK &#064; <time class="tag-quote__quoted-time" datetime="2020-09-26T01:52:34+03:00">25.09.20, 22:52</time></span><div class='quote '>тормозит, и либы рне все искать еадо, а зачем собвеснно.<br>
<br>
я лучше смолчу</div></div><br>
это лучше  :)]]></description>
        <author>swf</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3839418</guid>
        <pubDate>Fri, 25 Sep 2020 22:52:34 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3839418</link>
        <description><![CDATA[sergioK: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3835421'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-07-28T22:42:10+00:00">28.07.20, 22:42</time></span><div class='quote '>То ты пишешь, что питон используется в нашей стране ровно в двух областях, а теперь вдруг выясняется, что не ровно. Уже и скрипты оказываются пишут. И оказывается ты имел ввиду фулл-тайм.</div></div><br>
В вашей не знаю, у вас много чего не понятного  :D   а вот в Америках там всяких с Канадами,<br>
есть две ниши.<br>
первая основная это machine learning и в основном пишут не програмисты, а физики там или <br>
еще кто, чистота кода, как и типы, им не так важна.<br>
<br>
Второе это замена bash , но так она вяло продвигается, мне лично не понравилась,<br>
тормозит, и либы рне все искать еадо, а зачем собвеснно.<br>
<br>
Писать не Питоне enterprise можно но это плохая практика. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-09-25T22:57:52+00:00">25.09.20, 22:57</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3835142'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>esperanto &#064; <time class="tag-quote__quoted-time" datetime="2020-07-24T21:00:33+00:00">24.07.20, 21:00</time></span><div class='quote '>Личные мнения важны конечно, но тем не менее в университетах работаю не дураки. Думаю есть веские причины выбора того или иного языка.</div></div><br>
Не дураки, но от реальности часто оторванные, ибо реальный код не пишут,<br>
так чему они научить то могут?  <br>
Мне пару раз говорили как они учат, я лучше смолчу ибо мат запрещен  ;)]]></description>
        <author>sergioK</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837957</guid>
        <pubDate>Mon, 31 Aug 2020 09:38:32 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837957</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837943'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-08-31T08:24:52+00:00">31.08.20, 08:24</time></span><div class='quote '>Вот тут в С++ дурная засада - нужно переводить в целое, произвести бинарные вычисления, потом опять перевести в тип перечисления. Страшного ничего нет, но напрягает.</div></div><br>
В magic_enum для этого есть несколько фичереквестов. Может и это допилят. А пока только всякие QFlags юзать для этого придётся]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837951</guid>
        <pubDate>Mon, 31 Aug 2020 09:16:56 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837951</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837943'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-08-31T08:24:52+00:00">31.08.20, 08:24</time></span><div class='quote '>Иногда (а может и часто), для описания различных флагов используются перечисления, а не численные константы.</div></div><br>
Да, и это хреново, на мой взгляд :)]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837947</guid>
        <pubDate>Mon, 31 Aug 2020 08:59:49 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837947</link>
        <description><![CDATA[applegame: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837943'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-08-31T08:24:52+00:00">31.08.20, 08:24</time></span><div class='quote '>Вот тут в С++ дурная засада - нужно переводить в целое, произвести бинарные вычисления, потом опять перевести в тип перечисления. Страшного ничего нет, но напрягает.</div></div>Перечисление в целое вроде неявно кастится в плюсах. А вот наоборот придется кастить и это правильно.]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837943</guid>
        <pubDate>Mon, 31 Aug 2020 08:24:52 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837943</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837428'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2020-08-21T18:09:08+00:00">21.08.20, 18:09</time></span><div class='quote '>Сложно придумать кейс, где нужны не идентификаторы. Кстати, надо будет глянуть стандарт на тему валидных значений. Если сможешь привести цитату или пункты, на которые ссылаешься, то будет отлично.</div></div><br>
Иногда (а может и часто), для описания различных флагов используются перечисления, а не численные константы. Но флаги нужно комбинировать. Вот тут в С++ дурная засада - нужно переводить в целое, произвести бинарные вычисления, потом опять перевести в тип перечисления. Страшного ничего нет, но напрягает.]]></description>
        <author>JoeUser</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837942</guid>
        <pubDate>Mon, 31 Aug 2020 08:05:38 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837942</link>
        <description><![CDATA[Wound: <span class="b-attach" data-size="183318" data-hits="994" data-attach-id="62484" data-attach-post-id="3837942">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3837942&amp;attach_id=62484' title='Скачать файл' target='_blank'>ivNff4dGOnQ.jpg</a> (, : 994)
		</span>]]></description>
        <author>Wound</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837792</guid>
        <pubDate>Thu, 27 Aug 2020 10:59:06 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837792</link>
        <description><![CDATA[swf: Спасибо, но <em class='tag-i'>малому</em> сильно нравится питон :rolleyes:  <br>
Уже первую игру почти написали: PUT ONE IN BULLSEYE&#33; <br>
Булзай (бычий глаз) оказался аналогом нашего яблочка. <br>
<br>
ЗЫ. Вернее, я уже написала, сегодня сама полчаса в эту игру играла  :D <br>
Малому ещё надо объяснить, как на эвклидовой плоскости считается расстояние между двумя точками и записывается уравнение окружности.]]></description>
        <author>swf</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837785</guid>
        <pubDate>Thu, 27 Aug 2020 09:21:35 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837785</link>
        <description><![CDATA[applegame: если хочется черепашек, может тогда не питон а лого?<br>
<a class='tag-url' href='https://www.calormen.com/jslogo/' target='_blank'>https://www.calormen.com/jslogo/</a>]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837768</guid>
        <pubDate>Thu, 27 Aug 2020 06:48:44 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837768</link>
        <description><![CDATA[swf: Видимо, есть холст и перо по умолчанию. А я создаю уже новые объекты, холст и перо.<br>Команда  turtle.reset() очищает тот холст, который по умолчанию, поэтому в центре экрана и висит чёрная стрелка.<br>Непонятно только, как два холста друг на друга накладываются. Просвечивают?]]></description>
        <author>swf</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837680</guid>
        <pubDate>Tue, 25 Aug 2020 18:58:46 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837680</link>
        <description><![CDATA[swf: Я опять про питон.<br>
Когнитивный диссонанс №1<br>
Вначале создаю (объект) холст, затем перо. Всё работает:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">import turtle</div><div class="code_line">w = turtle.Screen()</div><div class="code_line">w.title(&quot;TEST&quot;)</div><div class="code_line">w.setup(500,500)</div><div class="code_line">w.bgcolor(&quot;gray&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">p = turtle.Pen()</div><div class="code_line">p.color(&quot;red&quot;)</div><div class="code_line">p.pensize(3)</div><div class="code_line">p.fillcolor(&quot;gray&quot;)</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
Затем ничего не создаю: ни пера, ни холста. И опять всё работает  :blink: <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">import turtle</div><div class="code_line">turtle.color(&quot;red&quot;)</div><div class="code_line">turtle.fillcolor(&quot;gray&quot;)</div><div class="code_line">turtle.pensize(3)</div><div class="code_line">&nbsp;</div><div class="code_line">turtle.bgcolor(&quot;gray&quot;)</div><div class="code_line">turtle.setup(500, 500)</div><div class="code_line">turtle.title(&quot;TEST&quot;)</div></ol></div></div></div></div> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-25T19:04:00+00:00">25.08.20, 19:04</time></span></span><br>
Когнитивный диссонанс №2<br>
Если в начале первой программы пишу turtle.reset(), а потом задаю цвет пера и что-то рисую, то на холсте в позиции (0,0) отображается чёрная стрелка.<br>
Если не пишу turtle.reset(),то всё нормально.<br>
<br>
А вот вторая программа на turtle.reset() не реагирует.]]></description>
        <author>swf</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837454</guid>
        <pubDate>Sat, 22 Aug 2020 11:48:50 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837454</link>
        <description><![CDATA[korvin: использовать локальные форматы в протоколах — крайне плохая идея.]]></description>
        <author>korvin</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837446</guid>
        <pubDate>Sat, 22 Aug 2020 09:07:41 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837446</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837427'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-21T17:55:16+00:00">21.08.20, 17:55</time></span><div class='quote '>Внимание – вопрос: когда программист хочет коллекцию элементов перечисления, какой из этих двух вариантов он имеет в виду</div></div><br>
Он имеет ввиду что угодно, что сможет использовать как for(EnumType value : { RED, GREEN, BLUE, GRAY}), но без явного перечисления всех значений где-либо, кроме объявления enum-а.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837427'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-21T17:55:16+00:00">21.08.20, 17:55</time></span><div class='quote '>А если вводит, например, из файла, то &quot;Red&quot; подойдёт как значение, кодируемое 1? А если он русский, выставил себе std::locale(&quot;ru_RU.UTF8&quot;) и хочет видеть &quot;КРАСНЫЙ&quot;?</div></div><br>
Почему мне кажется, что ты просто хочешь показать, как хорошо ты знаешь плюсы? :D  Тут каждый первый оппонент тебе пишет, что не надо это в автоматической сериализации в строку, нужно просто получить человекочитаемое строковое значение enum-а как есть. Вот прямо как есть без выпендрежа &quot;а что, а если&quot;. Этого ВНЕЗАПНО достаточно для 99% случаев. Да и даже кастомизировать несложно - достаточно сделать какой-нибудь std::serializer&lt;T&gt;, и, специализируя его, учитывать в сериализации хоть локаль, хоть фазу Луны.]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837428</guid>
        <pubDate>Fri, 21 Aug 2020 18:09:08 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837428</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837427'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-21T17:55:16+00:00">21.08.20, 17:55</time></span><div class='quote '>а ориентирован на программирование как научном подходе к IT.</div></div><br>
Что для тебя научный подход? Для меня это набор методов получения знаний, основанный на эмпирических наблюдениях, логике и эмпирических же проверках. Я не понимаю, при чем тут C++, да и вообще программирование. Хотя конечно я считаю, что оно может быть полезно для науки. Но ты очевидно не об этом. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-21T18:23:17+00:00">21.08.20, 18:23</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837427'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-21T17:55:16+00:00">21.08.20, 17:55</time></span><div class='quote '>Внимание – вопрос: когда программист хочет коллекцию элементов перечисления, какой из этих двух вариантов он имеет в виду? Валидные значения или-таки явным образом определённые идентификаторы?</div></div><br>
Сложно придумать кейс, где нужны не идентификаторы. Кстати, надо будет глянуть стандарт на тему валидных значений. Если сможешь привести цитату или пункты, на которые ссылаешься, то будет отлично.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>когда он к GREEN делает ++, он хочет следующее значение или следующий идентификатор?</div></div><br>
Неважно, так как не нужен ++ для enum.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Даже название &quot;перечисление&quot; говорит, что это просто список значений. Режимы работы стиральной машины, каналы ТВ, список форсмажорных обстоятельств в договоре, типы внешних интерфейсов в ПК, список поддерживаемых движком графических API...</div></div><br>
Именно. И что тебя смущает тогда в желании вывести это список или пройтись по нему?]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837427</guid>
        <pubDate>Fri, 21 Aug 2020 17:55:16 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837427</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837379'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>korvin &#064; <time class="tag-quote__quoted-time" datetime="2020-08-20T21:20:42+00:00">20.08.20, 21:20</time></span><div class='quote '>Не знаю, что за заморочки с enum&#39;ами у вас там в C++, но во многих других языках, enum — это просто конечное множество литералов с, опционально, приаттаченными к ним какими-то свойствами и получить массив всех значений enum&#39;ного типа не представляет никакой проблемы.</div></div>Угу. Но в C/C++ это не так. С подобными перечислениями:<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">enum</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;RED,</div><div class="code_line">&nbsp;&nbsp;GREEN,</div><div class="code_line">&nbsp;&nbsp;BLUE,</div><div class="code_line">&nbsp;&nbsp;GRAY &nbsp;</div><div class="code_line">};</div></ol></div></div></div></div>архитектурных проблем не возникает, но вот с подобными:<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">enum</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;RED &nbsp; = 1,</div><div class="code_line">&nbsp;&nbsp;GREEN = 2,</div><div class="code_line">&nbsp;&nbsp;BLUE &nbsp;= 4,</div><div class="code_line">&nbsp;&nbsp;GRAY &nbsp;=-1</div><div class="code_line">};</div></ol></div></div></div></div>всплывает целый комплекс проблем. По Стандарту C++ валидными значениями для этого перечисления будут [-8...7]. Неожиданно? И неважно, что только четыре из них имеют идентификаторы. Причём это касается только дополнительного кодирования целых, для других вариантов диапазон будет [-7...7], и определяется это как поведение, зависящее от реализации, в данном случае от архитектуры исполнительного устройства. Внимание – вопрос: когда программист хочет коллекцию элементов перечисления, какой из этих двух вариантов он имеет в виду? Валидные значения или-таки явным образом определённые идентификаторы? Внимание – вопрос 2: когда он к GREEN делает ++, он хочет следующее значение или следующий идентификатор? А если к BLUE? А если к GRAY... или -- к RED? А когда он выводит их в поток, он реально хочет увидеть &quot;RED&quot; на выходе? А если вводит, например, из файла, то &quot;Red&quot; подойдёт как значение, кодируемое 1? А если он русский, выставил себе std::locale(&quot;ru_RU.UTF8&quot;) и хочет видеть &quot;КРАСНЫЙ&quot;?<br>
Где, в каком Стандарте и как именно это всё прописывать? А главное — зачем вообще пытаться натягивать сову на глобус, если перечисления всегда были предназначены для представления в коде дискретных входов. Даже название &quot;перечисление&quot; говорит, что это просто список значений. Режимы работы стиральной машины, каналы ТВ, список форсмажорных обстоятельств в договоре, типы внешних интерфейсов в ПК, список поддерживаемых движком графических API... А то, что язык позволяет с ними ещё и дополнительные выкрутасы вытворять, так это просто бонус. Мол, хотите юзать, на здоровье, под вашу ответственность.<br>
Меня тут пытаются подвести под обвинение за слишком узкий взгляд на программирование в связи с моим крайне лояльным отношением к C++ и более прохладным отношением к остальным языкам. По факту же наоборот, это пока единственный встретившийся мне язык, который не сосредотачивается на популизме масс в контексте популярности трендов, а ориентирован на программирование с точки зрения научного подхода к IT.]]></description>
        <author>Qraizer</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837423</guid>
        <pubDate>Fri, 21 Aug 2020 17:31:07 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837423</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837369'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-20T19:05:27+00:00">20.08.20, 19:05</time></span><div class='quote '>P.S. Сорри, но продолжать &quot;обучать программированию&quot;, пусть даже и на примере отдельно взятого языка, я не буду.</div></div><br>
Пока создается впечатление, что у тебя сильная деформация из-за глубокого изучания одного языка.]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837422</guid>
        <pubDate>Fri, 21 Aug 2020 17:29:39 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837422</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837379'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>korvin &#064; <time class="tag-quote__quoted-time" datetime="2020-08-20T21:20:42+00:00">20.08.20, 21:20</time></span><div class='quote '>В смысле механизма рефлексии? Или о каком интерфейсе речь?</div></div>Эм-м... ну можно и так сказать. Ирония в том, в Плюсах уже всё для этого есть, осталось только договориться именно так всем и действовать.]]></description>
        <author>Qraizer</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837393</guid>
        <pubDate>Fri, 21 Aug 2020 04:59:31 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837393</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837369'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-20T19:05:27+00:00">20.08.20, 19:05</time></span><div class='quote '>Ну вот и вернулись к началу: для дискретных входов нет такого понятия, как арифметика.</div></div><br>
Я не знаю, зачем ты к этому вернулся, ведь арифметику никто не обсуждал.]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837379</guid>
        <pubDate>Thu, 20 Aug 2020 21:20:42 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837379</link>
        <description><![CDATA[korvin: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837369'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-20T19:05:27+00:00">20.08.20, 19:05</time></span><div class='quote '>Ну во-первых, там речь была за вывод, а не сериализацию.</div></div><br>
Разве? Ну да ладно тогда.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837369'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-20T19:05:27+00:00">20.08.20, 19:05</time></span><div class='quote '>Во-вторых, а для int и float она зачем?</div></div><br>
При сериализации — не нужна.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837369'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-20T19:05:27+00:00">20.08.20, 19:05</time></span><div class='quote '>Computer Science, Computer Science... you know, you know</div></div><br>
Что?<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837369'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-20T19:05:27+00:00">20.08.20, 19:05</time></span><div class='quote '>Речь о стандартизации интерфейса с объектом.</div></div><br>
В смысле механизма рефлексии? Или о каком интерфейсе речь? <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-20T21:32:55+00:00">20.08.20, 21:32</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3837369'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-20T19:05:27+00:00">20.08.20, 19:05</time></span><div class='quote '>Ну вот и вернулись к началу: для дискретных входов нет такого понятия, как арифметика. Определи её и пользуй на здоровье, только тогда это будет уже не дискретный вход. Хотя бы потому, что для каждого такого входа своя уникальная арифметика.</div></div><br>
:what:<br>
<br>
Не знаю, что за заморочки с enum&#39;ами у вас там в C++, но во многих других языках, enum — это просто конечное множество литералов с, опционально, приаттаченными к ним какими-то свойствами и получить массив всех значений enum&#39;ного типа не представляет никакой проблемы.]]></description>
        <author>korvin</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837369</guid>
        <pubDate>Thu, 20 Aug 2020 19:05:27 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3837369</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836868'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T19:21:42+00:00">17.08.20, 19:21</time></span><div class='quote '>++ тебе для начала написать нужно, для чего как раз и потребуется обобщённый способ получить все значения.</div></div>Ну вот и вернулись к началу: для дискретных входов нет такого понятия, как арифметика. Определи её и пользуй на здоровье, только тогда это будет уже не дискретный вход. Хотя бы потому, что для каждого такого входа своя уникальная арифметика.<br>
P.S. Сорри, но продолжать &quot;обучать программированию&quot;, пусть даже и на примере отдельно взятого языка, я не буду. Можно попросить <strong class='tag-b'>vot</strong>-а создать раздел &quot;ПОМОЩЬ КОДЕРАМ&quot; наверху главной, чтобы выкладывать там лекции по Computer Science, тогда посмотрим.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836870'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>korvin &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T19:24:43+00:00">17.08.20, 19:24</time></span><div class='quote '>О каких сильных связях речь?</div></div>Computer Science, Computer Science... you know, you know ;) <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836870'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>korvin &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T19:24:43+00:00">17.08.20, 19:24</time></span><div class='quote '>Зачем при сериализации enum&#39;ов локализация?</div></div>Ну во-первых, там речь была за вывод, а не сериализацию. Во-вторых, а для int и float она зачем?<br>
Неприкольные вопросы вы задаёте, господа тролли. Прекрасно ж ответы знаете.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836876'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T20:11:19+00:00">17.08.20, 20:11</time></span><div class='quote '>Да и в C++ числовые значения enumerator&#39;ов в enum не обязаны идти подряд и даже быть упорядоченными.</div></div>Ну хоть кто-то глянул чуть пристальнее. Молодец, <strong class='tag-b'>D_KEY</strong>&#33;<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836870'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>korvin &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T19:24:43+00:00">17.08.20, 19:24</time></span><div class='quote '>Не нужен никакой «стандарт на сериализацию». ...</div></div>Драсьти-пожалуйста. <span class="tag-color tag-color-named" data-value="gray" style="color: gray">Не, однозначно раздел не помешал бы.</span> Причём тут представление данных снаружи? Речь об стандартизации интерфейса с объектом.]]></description>
        <author>Qraizer</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836968</guid>
        <pubDate>Tue, 18 Aug 2020 07:33:25 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836968</link>
        <description><![CDATA[applegame: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836967'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>korvin &#064; <time class="tag-quote__quoted-time" datetime="2020-08-18T06:34:24+00:00">18.08.20, 06:34</time></span><div class='quote '>Я тоже не совсем понял, но решил, что имеется в виду «нативная» (для языка) бинарная сериализация / бинарное представление объекта в памяти и вспомнил, что в Erlang такое есть.</div></div>Не думаю, что протокол ETF базируется на бинарном представлении объекта в памяти. Например, то же 32-битное целое сериализуется всегда в big-endian, а в памяти оно зависит от платформы. Да и глупо было бы привязывать его к особенностям реализации.]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836967</guid>
        <pubDate>Tue, 18 Aug 2020 06:34:24 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836967</link>
        <description><![CDATA[korvin: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836908'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T20:32:51+00:00">17.08.20, 20:32</time></span><div class='quote '>Не знаю, что именно подразумевается под &quot;побитно&quot;</div></div><br>
Я тоже не совсем понял, но решил, что имеется в виду «нативная» (для языка) бинарная сериализация / бинарное представление объекта в памяти и вспомнил, что в Erlang такое есть. И в Java. И в Go. В случае C++, видимо, имелось в виду просто передача куска памяти, занимаемого структурой, как массив байт.]]></description>
        <author>korvin</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836920</guid>
        <pubDate>Mon, 17 Aug 2020 20:51:16 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836920</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836906'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Wound &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T20:31:58+00:00">17.08.20, 20:31</time></span><div class='quote '>Так это в вэбе обычно так и бывает. С++ не про вэб.</div></div><br>
Сейчас во многих сферах есть связь с вебом, да и просто сетевой обмен. И действуют примерно так же. protobuf тот же очень широко используется.]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836908</guid>
        <pubDate>Mon, 17 Aug 2020 20:32:51 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836908</link>
        <description><![CDATA[applegame: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836870'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>korvin &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T19:24:43+00:00">17.08.20, 19:24</time></span><div class='quote '>кроме Erlang&#39;а, разве что, и то это не точно</div></div>Не знаю, что именно подразумевается под &quot;побитно&quot;, но наверное таки нет. Между нодами эрланг гоняет свой формат сериализации <a class='tag-url' href='https://erlang.org/doc/apps/erts/erl_ext_dist.html#:~:text=In%20Erlang%20the%20BIF%20erlang,sending%20messages%20across%20node%20boundaries' target='_blank'>ETF</a>, а на его базе создан гитхабовский формат <a class='tag-url' href='http://bert-rpc.org/' target='_blank'>BERT</a>.]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836906</guid>
        <pubDate>Mon, 17 Aug 2020 20:31:58 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836906</link>
        <description><![CDATA[Wound: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836622'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>korvin &#064; <time class="tag-quote__quoted-time" datetime="2020-08-14T16:45:53+00:00">14.08.20, 16:45</time></span><div class='quote '>При чём тут сильные связи? Не знаю, как в твоей сфере, но в вэбе обычно XML/JSON/Protobuf/whatever полученное/переданное сервером сериализуют/десериализуют в DTO (POD) для удобства, а уже его отправляют как параметр запроса в «бизнес-сервис» / принимают как ответ от «бизнес-сервиса», например. Никакого внутреннего состояния у DTO нет, это голые структуры, а не умные объекты.</div></div><br>
Так это в вэбе обычно так и бывает. С++ не про вэб.]]></description>
        <author>Wound</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836876</guid>
        <pubDate>Mon, 17 Aug 2020 20:11:19 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836876</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836866'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T19:00:01+00:00">17.08.20, 19:00</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836865'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T18:57:50+00:00">17.08.20, 18:57</time></span><div class='quote '>...и итерирование по всем возможным значениям.</div></div>И что это, если не ++?</div></div><br>
Это итерирование по всем возможным значениям :) Не ожидал от тебя столь сильной деформации от C++.<br>
Да и в C++ числовые значения enumerator&#39;ов в enum не обязаны идти подряд и даже быть упорядоченными. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-17T20:12:30+00:00">17.08.20, 20:12</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836870'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>korvin &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T19:24:43+00:00">17.08.20, 19:24</time></span><div class='quote '>Как альтернатива — кодогенерация: хоть тот же protobuf, хоть всякие генераторы для JSON и прочих.</div></div><br>
Да, так и делают, обычно.]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836870</guid>
        <pubDate>Mon, 17 Aug 2020 19:24:43 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836870</link>
        <description><![CDATA[korvin: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836864'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T18:42:12+00:00">17.08.20, 18:42</time></span><div class='quote '>Ну так необъекты можно тупо побитно туда-сюдакать. Утрирую, конечно, наши поинтеры никто не отменял, только не в этом проблема. Проблема – это когда нет стандарта на сериализацию</div></div><br>
Не нужен никакой «стандарт на сериализацию». Есть разные форматы со своими плюсами и минусами и они выбираются по задаче. Что нужно — это удобный способ реализации библиотеки конвертации DTO в нужный формат и обратно. Для других языков такие библиотеки есть.<br>
<br>
И побитно никто не гоняет (кроме Erlang&#39;а, разве что, и то это не точно), даже джависты обычно не используют встроенную сериализацию.<br>
<br>
Как альтернатива — кодогенерация: хоть тот же protobuf, хоть всякие генераторы для JSON и прочих.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836864'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T18:42:12+00:00">17.08.20, 18:42</time></span><div class='quote '>С необъектами всегда обычно только сильные связи и существуют</div></div><br>
О каких сильных связях речь? <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-17T19:26:41+00:00">17.08.20, 19:26</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836866'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T19:00:01+00:00">17.08.20, 19:00</time></span><div class='quote '>в C locale classic или по-китайски тоже?</div></div><br>
Зачем при сериализации enum&#39;ов локализация?]]></description>
        <author>korvin</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836868</guid>
        <pubDate>Mon, 17 Aug 2020 19:21:42 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836868</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836866'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T19:00:01+00:00">17.08.20, 19:00</time></span><div class='quote '>в C locale classic или по-китайски тоже?</div></div><br>
В виде, реализованном в этой библиотеке.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836866'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T19:00:01+00:00">17.08.20, 19:00</time></span><div class='quote '>И что это, если не ++?</div></div><br>
++ тебе для начала написать нужно, для чего как раз и потребуется обобщённый способ получить все значения.]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836866</guid>
        <pubDate>Mon, 17 Aug 2020 19:00:01 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836866</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836865'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T18:57:50+00:00">17.08.20, 18:57</time></span><div class='quote '>Автоматическое преобразование в строку...</div></div>в C locale classic или по-китайски тоже?<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836865'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T18:57:50+00:00">17.08.20, 18:57</time></span><div class='quote '>...и итерирование по всем возможным значениям.</div></div>И что это, если не ++? <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-17T19:05:19+00:00">17.08.20, 19:05</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836866'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-17T19:00:01+00:00">17.08.20, 19:00</time></span><div class='quote '>в C locale classic или по-китайски тоже?</div></div>Впрочем, для этого можно приспособить std::messages]]></description>
        <author>Qraizer</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836865</guid>
        <pubDate>Mon, 17 Aug 2020 18:57:50 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836865</link>
        <description><![CDATA[OpenGL: Автоматическое преобразование в строку и итерирование по всем возможным значениям.]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836864</guid>
        <pubDate>Mon, 17 Aug 2020 18:42:12 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836864</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836610'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2020-08-14T14:54:32+00:00">14.08.20, 14:54</time></span><div class='quote '>Описанная библиотека совсем не про арифметические операции с ними.</div></div>А что, кроме присваиваний и сравнений, ты хотел бы ещё делать с дискретными входами? Любопытно просто. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-17T18:57:03+00:00">17.08.20, 18:57</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836622'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>korvin &#064; <time class="tag-quote__quoted-time" datetime="2020-08-14T16:45:53+00:00">14.08.20, 16:45</time></span><div class='quote '>Никакого внутреннего состояния у DTO нет, это голые структуры, а не умные объекты.</div></div>Ну так необъекты можно тупо побитно туда-сюдакать. Утрирую, конечно, наши поинтеры никто не отменял, только не в этом проблема. Проблема – это когда нет стандарта на сериализацию. У нас, впрочем, есть на что опереться, только никто с точки зрения сериализации на этот интерфейс не смотрит. <span class="tag-color tag-color-named" data-value="gray" style="color: gray">Выступить с предложением в Комитет, что ли...</span><br>
P.S. С необъектами всегда обычно только сильные связи и существуют. Неудивительно.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836638'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-14T20:36:37+00:00">14.08.20, 20:36</time></span><div class='quote '>и покажи мне аналог на boost::spirit.</div></div>Пф. Я и свою либу напишу, коли приспичит. За неделю-полторы. Где-то валялись наработки универсальных токенайзера, парсера и генератора конечных автоматов по описанию состояний и переходов. Только будет неуниверсально, на один-единственный какой-нибудь язык... почему бы и не C ;) .]]></description>
        <author>Qraizer</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836798</guid>
        <pubDate>Sun, 16 Aug 2020 13:16:01 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836798</link>
        <description><![CDATA[applegame: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836787'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>swf &#064; <time class="tag-quote__quoted-time" datetime="2020-08-16T11:03:41+00:00">16.08.20, 11:03</time></span><div class='quote '>Оказывается, я латентный питонист  :D</div></div><br>
Бывший латентный, а теперь уже действительный питонист. :lol:]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836787</guid>
        <pubDate>Sun, 16 Aug 2020 11:03:41 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836787</link>
        <description><![CDATA[swf: Оказывается, я латентный питонист  :D <br>Потому что всю жизнь, на любом языке программирования, выделяю блок тремя пробелами.<br>Четырьмя не получается, пишу много комментариев, берегу для них место.]]></description>
        <author>swf</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836780</guid>
        <pubDate>Sun, 16 Aug 2020 08:54:38 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836780</link>
        <description><![CDATA[swf: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836775'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>amk &#064; <time class="tag-quote__quoted-time" datetime="2020-08-16T03:26:24+00:00">16.08.20, 03:26</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836771'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>swf &#064; <time class="tag-quote__quoted-time" datetime="2020-08-15T21:27:13+00:00">15.08.20, 21:27</time></span><div class='quote '>Пришлось русскую надпись убрать, видимо, нет таких шрифтов.</div></div> Скорее настроенный по умолчанию шрифт не содержит русских букв.</div></div><br>
Ариал был прописан:<br>
t.write(&quot;Звезда по имени Солнце&quot;, False, &quot;center&quot;, (&quot;Arial&quot;, 20, &quot;normal&quot;)) <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-16T08:58:28+00:00">16.08.20, 08:58</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836777'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Wound &#064; <time class="tag-quote__quoted-time" datetime="2020-08-16T05:55:36+00:00">16.08.20, 05:55</time></span><div class='quote '>Зачем вообще писать что-то в онлайн компиляторах? Они для другого предназначены, а не для написания каких то полноценных программ.</div></div><br>
Чтобы малой мог со своего старого айфона показывать свои программы всем желающим.<br>
Например, учителю информатики, родителям, одноклассникам.<br>
Придётся ему на айфон третий питон устанавливать. В смысле пусть сам устанавливает. Первое заданье  :D]]></description>
        <author>swf</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836777</guid>
        <pubDate>Sun, 16 Aug 2020 05:55:36 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836777</link>
        <description><![CDATA[Wound: Зачем вообще писать что-то в онлайн компиляторах? Они для другого предназначены, а не для написания каких то полноценных программ.]]></description>
        <author>Wound</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836775</guid>
        <pubDate>Sun, 16 Aug 2020 03:26:24 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836775</link>
        <description><![CDATA[amk: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836771'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>swf &#064; <time class="tag-quote__quoted-time" datetime="2020-08-15T21:27:13+00:00">15.08.20, 21:27</time></span><div class='quote '>Пришлось русскую надпись убрать, видимо, нет таких шрифтов.</div></div> Скорее настроенный по умолчанию шрифт не содержит русских букв.]]></description>
        <author>amk</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836772</guid>
        <pubDate>Sat, 15 Aug 2020 21:58:11 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836772</link>
        <description><![CDATA[D_KEY: Ну, видимо, какие-то проблемы с запуском этого дела в вебе. Просто вряд ли оно востребовано, потому и нет приличного ресурса.]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836771</guid>
        <pubDate>Sat, 15 Aug 2020 21:27:13 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836771</link>
        <description><![CDATA[swf: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836740'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2020-08-15T14:39:18+00:00">15.08.20, 14:39</time></span><div class='quote '>Мне кажется, что стоит это спрашивать у тех, кто его рекомендовал. Я бы погугли еще на вашем месте и выбрал иной инструмент <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-15T14:44:28+00:00">15.08.20, 14:44</time></span></span><br>
<a class='tag-url' href='https://trinket.io/features/pygame' target='_blank'>Вот тут</a> как минимум проиграть свой код можно. Но вроде ссылку нельзя сделать без регистрации. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-15T14:45:26+00:00">15.08.20, 14:45</time></span></span><br>
О, там по умолчанию игрушка простенькая открывается :D</div></div><br>
Пришлось русскую надпись убрать, видимо, нет таких шрифтов.<br>
<br>
И тоже картинка отличается от моей.]]></description>
        <author>swf</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836767</guid>
        <pubDate>Sat, 15 Aug 2020 19:27:59 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836767</link>
        <description><![CDATA[swf: Программа по первой ссылке перестала выполняться.<br>
Сделала заново:<br>
<a class='tag-url' href='https://repl.it/repls/OrangeDirectProblem#sun2.py' target='_blank'>https://repl.it/repls/OrangeDirectProblem#sun2.py</a><br>
<br>
А вообще нафиг такой ресурс.]]></description>
        <author>swf</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836741</guid>
        <pubDate>Sat, 15 Aug 2020 15:38:27 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836741</link>
        <description><![CDATA[swf: Получилось<br>
<a class='tag-url' href='https://repl.it/repls/SlategreyIrresponsibleLint#sun2.py' target='_blank'>https://repl.it/repls/SlategreyIrresponsibleLint#sun2.py</a><br>
<br>
Почему-то в моём питоне картинка выглядит по-другому<br>
<br>
<img class='tag-img' src='https://images.lingvoforum.net/images/sun1.md.jpg' alt='user posted image'>]]></description>
        <author>swf</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836740</guid>
        <pubDate>Sat, 15 Aug 2020 14:39:18 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836740</link>
        <description><![CDATA[D_KEY: Мне кажется, что стоит это спрашивать у тех, кто его рекомендовал. Я бы погугли еще на вашем месте и выбрал иной инструмент <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-15T14:44:28+00:00">15.08.20, 14:44</time></span></span><br>
<a class='tag-url' href='https://trinket.io/features/pygame' target='_blank'>Вот тут</a> как минимум проиграть свой код можно. Но вроде ссылку нельзя сделать без регистрации. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-15T14:45:26+00:00">15.08.20, 14:45</time></span></span><br>
О, там по умолчанию игрушка простенькая открывается :D]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836738</guid>
        <pubDate>Sat, 15 Aug 2020 14:35:25 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836738</link>
        <description><![CDATA[swf: Даже просто скопированный текст нет возможности вставить.<br>Или зарегистрированному пользователю это разрешается?]]></description>
        <author>swf</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836728</guid>
        <pubDate>Sat, 15 Aug 2020 11:06:12 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836728</link>
        <description><![CDATA[swf: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836711'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>amk &#064; <time class="tag-quote__quoted-time" datetime="2020-08-15T08:47:52+00:00">15.08.20, 08:47</time></span><div class='quote '>Соответственно, перед тем, как начинать формировать перечень элементов среза, к отрицательным индексам добавляется длина последовательности.<br>
То есть, a[-1:0:-1] означает в точности то же самое, что и a[len(a)-1:0:-1]</div></div><br>
Спасибо&#33; <br>
Вот только сейчас поняла, почему -1.<br>
Ну что стоит в учебнике ясно и чётко об этом написать. Нет, все переписывают друг у друга одно и то же. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-15T11:09:09+00:00">15.08.20, 11:09</time></span></span><br>
На лингвофоруме любезно дали ссылку на питон онлайн с черепашками:<br>
 <a class='tag-url' href='https://repl.it/languages/python_turtle' target='_blank'>https://repl.it/languages/python_turtle</a><br>
<br>
Не могу понять, там можно загружать свою программу с компа?<br>
Не хочется регистрироваться без уверенности, что это подходит для моих целей.]]></description>
        <author>swf</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836711</guid>
        <pubDate>Sat, 15 Aug 2020 08:47:52 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836711</link>
        <description><![CDATA[amk: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836256'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>swf &#064; <time class="tag-quote__quoted-time" datetime="2020-08-10T20:24:23+00:00">10.08.20, 20:24</time></span><div class='quote '>В  a[-1:0:-1] START тоже меньше STOP, а STEP отрицательный.</div></div> В срезах START и STOP ведут себя не совсем так, как в диапазонах (range). В срезах это позиции элементов. -1 означает последний элемент последовательности. Соответственно, перед тем, как начинать формировать перечень элементов среза, к отрицательным индексам добавляется дли на последовательности.<br>
То есть, a[-1:0:-1] означает в точности то же самое, что и a[len(a)-1:0:-1]<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836256'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>swf &#064; <time class="tag-quote__quoted-time" datetime="2020-08-10T20:24:23+00:00">10.08.20, 20:24</time></span><div class='quote '>Хотела отсортировать список по убыванию:<br>
a[:] = sorted(a[::-1])</div></div> Пиши так <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">a = sorted(a, reverse=True)</div></ol></div></div></div></div> Но этот вариант лучше оставить только для сортировки части списка<br>
А весь список лучше сортировать так <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">a.sort(reverse=True)</div></ol></div></div></div></div>]]></description>
        <author>amk</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836669</guid>
        <pubDate>Sat, 15 Aug 2020 08:01:42 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836669</link>
        <description><![CDATA[applegame: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836654'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Wound &#064; <time class="tag-quote__quoted-time" datetime="2020-08-15T07:20:18+00:00">15.08.20, 07:20</time></span><div class='quote '>Мы для этого в прюсах юзали Flex+Bison</div></div>Неплохие инструменты, но они внешние. У нас тут речь немного не об этом.]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836654</guid>
        <pubDate>Sat, 15 Aug 2020 07:20:18 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836654</link>
        <description><![CDATA[Wound: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836638'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-14T20:36:37+00:00">14.08.20, 20:36</time></span><div class='quote '><a class='tag-url' href='https://run.dlang.io/is/AYKe5x' target='_blank'>https://run.dlang.io/is/AYKe5x</a> (запускабельно и можно редактировать код)<br>
и покажи мне аналог на boost::spirit.<br>
</div></div><br>
Мы для этого в прюсах юзали Flex+Bison]]></description>
        <author>Wound</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836638</guid>
        <pubDate>Fri, 14 Aug 2020 20:36:37 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836638</link>
        <description><![CDATA[applegame: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836604'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-14T13:59:59+00:00">14.08.20, 13:59</time></span><div class='quote '>P.P.S. И ты сильно недооцениваешь Плюсы. Мне никто не помешает распарсить любую формальную грамматику, которой я научу Плюсовый компилятор в компайл-тайм. Библиотек с поддержкой интерпретации любых скриптовых языков, реальных или выдуманных, хватает. boost::spirit к примеру ещё на C++03 была.</div></div>Да все я верно оцениваю. Сам фанател когда-то от плюсов. Речь-то об описании грамматики человеческим языком, а не вынужденными закорючками из boost::spirit. Посмотри как описывается грамматика простейшего калькулятора в дешной либе<br>
<a class='tag-url' href='https://run.dlang.io/is/AYKe5x' target='_blank'>https://run.dlang.io/is/AYKe5x</a> (запускабельно и можно редактировать код)<br>
и покажи мне аналог на boost::spirit.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836604'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-14T13:59:59+00:00">14.08.20, 13:59</time></span><div class='quote '>Очень хочется посмотреть на метаклассы и концепты в боевом режиме, а не песочнице experimental, но в то же время я их боюсь. Боюсь, что придётся испытать революцию, сравнимую с той, что 18 лет назад испытал после ознакомления с трудом Александреску.</div></div>Да ты просто вынырни из плюсов в другие языки и столько революций испытаешь. :D]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836634</guid>
        <pubDate>Fri, 14 Aug 2020 19:31:33 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836634</link>
        <description><![CDATA[D_KEY: <strong class='tag-b'>swf</strong>, нужно искать другой ресурс. Ключевые слова, которые могут помочь: python3 online turtle tkinter<br>
Может позже поищу.]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836629</guid>
        <pubDate>Fri, 14 Aug 2020 19:13:45 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836629</link>
        <description><![CDATA[swf: Как мне в кодескульптор загрузить черепашек?<br>
Неужели нельзя?<br>
<a class='tag-url' href='https://py3.codeskulptor.org/#user305_XgI5gRfIWo_0.py' target='_blank'>https://py3.codeskulptor.org/#user305_XgI5gRfIWo_0.py</a>]]></description>
        <author>swf</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836622</guid>
        <pubDate>Fri, 14 Aug 2020 16:45:53 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836622</link>
        <description><![CDATA[korvin: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836604'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-14T13:59:59+00:00">14.08.20, 13:59</time></span><div class='quote '>Теория программирования против сильных связей между сущностями более, чем это необходимо</div></div><br>
При чём тут сильные связи? Не знаю, как в твоей сфере, но в вэбе обычно XML/JSON/Protobuf/whatever полученное/переданное сервером сериализуют/десериализуют в DTO (POD) для удобства, а уже его отправляют как параметр запроса в «бизнес-сервис» / принимают как ответ от «бизнес-сервиса», например. Никакого внутреннего состояния у DTO нет, это голые структуры, а не умные объекты.<br>
<br>
Connection&#39;ы в вебе не сериализуют (нафига это вообще может понадобится?) и всякие распределённые объекты типа PDO/OLE тоже практически не используют (разве что в сильно кровавом и махровом энтрепрайзе).<br>
<br>
Кроме DTO, также подобной сериализации/десериализации (обычно только второе) подвергаются всякие конфиги в тех же JSON/YAML/whatever.<br>
<br>
Писать весь этот сугубо утилитарный код для каждого типа структуры — бесполезная трата времени.]]></description>
        <author>korvin</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836615</guid>
        <pubDate>Fri, 14 Aug 2020 15:42:52 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836615</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836604'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-14T13:59:59+00:00">14.08.20, 13:59</time></span><div class='quote '>Никто, кроме самого класса, не может знать лучше, как сохранить его состояние и как в дальнейшем восстановить.</div></div><br>
Это никак не противоречит (полу)автоматической сериализации с возможностью кастомизации (самим же классом).<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Понимаешь, <strong class='tag-b'>D_KEY</strong>, проблема нынешнего образования в том, что не делается разницы между программированием как наукой и программированием как практическим навыком.</div></div><br>
Возможно потому, что нет такой науки, как программирование. Есть CS. Но такое разделение проводится.]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836610</guid>
        <pubDate>Fri, 14 Aug 2020 14:54:32 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836610</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836604'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-14T13:59:59+00:00">14.08.20, 13:59</time></span><div class='quote '>Перечисления по определению являются дискретным входом, для таких арифметические операции просто не определены. Если хочешь доопределить, это другой вопрос, но тут же встаёт новый: зачем оно понадобилось, не баг ли это в архитектуре?</div></div><br>
Описанная библиотека совсем не про арифметические операции с ними. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-14T15:05:03+00:00">14.08.20, 15:05</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836604'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-14T13:59:59+00:00">14.08.20, 13:59</time></span><div class='quote '>Ото ты не знаешь. Никто, кроме самого класса, не может знать лучше, как сохранить его состояние и как в дальнейшем восстановить.</div></div><br>
Никто. Но в over99% случаев подойдёт &quot;вызовем сериализацию всех полей, кроме ...&quot;. Писать такое руками не намного более интеллектуальное занятие, чем самому расставлять всякие финализаторы по выходу из скопа вместо того, чтобы заюзать raii. И даже если такая тупая реализация тебе по каким-то причинам не подходит, в нормальных языках ты всегда можешь реализовать её так, как это нужно конкретно для этого класса. Так что возможность написать это нормально без костылей - маст хев.]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836604</guid>
        <pubDate>Fri, 14 Aug 2020 13:59:59 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836604</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836487'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T14:37:18+00:00">13.08.20, 14:37</time></span><div class='quote '>Подобная штука для enum-ов довольно полезна безотносительно желания повыпендриваться.</div></div>Ни разу не понадобилось, <strong class='tag-b'>OpenGL</strong>. Перечисления по определению являются дискретным входом, для таких арифметические операции просто не определены. Если хочешь доопределить, это другой вопрос, но тут же встаёт новый: зачем оно понадобилось, не баг ли это в архитектуре?<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836488'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T14:50:16+00:00">13.08.20, 14:50</time></span><div class='quote '><strong class='tag-b'>Qraizer</strong>, ну вот сериализацию на C++ ты как предлагаешь делать?</div></div>Ото ты не знаешь. Никто, кроме самого класса, не может знать лучше, как сохранить его состояние и как в дальнейшем восстановить. Какие-то атрибуты он вообще не хранит, а вычисляет при их запросе или принимает и раскладывает на составляющие при установке. (Типичнейший пример – атрибуты Ro и Fi для класса комплексных чисел, который в качестве полей хранит атрибуты Re и Im.) Какие-то вообще не его, а он их выдаёт за свои, сиречь они им делегируются. (Можно т.о. представить себе реализацию упомянутого Connection, чьи атрибуты опираются на объекты ОС.) В частном случае ты можешь реализовать сериализацию класса через его публичные гет/сеттеры, но в общем случае только сам класс знает, как это сделать не только правильно, но и эффективно. Он должен поддерживать этот интерфейс. Если его автор не озаботился, это либо ошибка дизайна класса, либо это значит, что вполне достаточно гет/сеттеров. И вот на этом нужно при обучении делать упор. А на том, как обходить недостатки дизайна, если вдруг архитектурно правильное решение – дополнить дизайн класса реализацией интерфейса сериализации – невозможно, обучать на факультативах. И там уже можно и рассказать про один из вариантов обхода неудачных проектных решений в лице рефлексии.<br>
Понимаешь, <strong class='tag-b'>D_KEY</strong>, проблема нынешнего образования в том, что не делается разницы между программированием как наукой и программированием как практическим навыком. И это ИМХО неправильно. Если первое выдавать за второе, мы получим армию крутых кодеров, а хотелось бы программеров.<br>
<br>
P.S. Твоё отношение к паттерну рефлексии я понял ещё с прошлого поста, <strong class='tag-b'>applegame</strong>, не волнуйся. Теория программирования против сильных связей между сущностями более, чем это необходимо, но ты имеешь право на иное мнение. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-14T14:07:20+00:00">14.08.20, 14:07</time></span></span><br>
P.P.S. И ты сильно недооцениваешь Плюсы. Мне никто не помешает распарсить любую формальную грамматику, которой я научу Плюсовый компилятор в компайл-тайм. Библиотек с поддержкой интерпретации любых скриптовых языков, реальных или выдуманных, хватает. boost::spirit к примеру ещё на C++03 была. Очень хочется посмотреть на метаклассы и концепты в боевом режиме, а не песочнице experimental, но в то же время я их боюсь. Боюсь, что придётся испытать революцию, сравнимую с той, что 18 лет назад испытал после ознакомления с трудом Александреску.]]></description>
        <author>Qraizer</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836526</guid>
        <pubDate>Fri, 14 Aug 2020 08:35:39 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836526</link>
        <description><![CDATA[swf: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836519'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2020-08-14T05:51:26+00:00">14.08.20, 05:51</time></span><div class='quote '>Может нужен явный t.fillcolor(&#39;blue&#39;)?</div></div><br>
Ура&#33; Спс  :) <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-14T08:36:24+00:00">14.08.20, 08:36</time></span></span><br>
import turtle<br>
t=turtle.Pen()<br>
t.color(&quot;red&quot;)<br>
t.fillcolor(&#39;blue&#39;)<br>
t.begin_fill()<br>
t.fd(50)<br>
t.left(90)<br>
t.fd(50)<br>
t.left(90)<br>
t.fd(50)<br>
t.left(90)<br>
t.fd(50)<br>
t.left(90)<br>
t.end_fill()]]></description>
        <author>swf</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836519</guid>
        <pubDate>Fri, 14 Aug 2020 05:51:26 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836519</link>
        <description><![CDATA[D_KEY: Может нужен явный t.fillcolor(&#39;blue&#39;)?]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836511</guid>
        <pubDate>Thu, 13 Aug 2020 21:18:31 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836511</link>
        <description><![CDATA[swf: Чтобы не флудить в тематике, буду спрашивать здесь.<br>Почему у меня черепашка не заливает фигуру цветом, а только рисует красный контур?<br>import turtle<br>t=turtle.Pen()<br>t.color(&quot;red&quot;,&quot;green&quot;)<br>t.begin_fill()<br>t.fd(50)<br>t.left(90)<br>t.fd(50)<br>t.left(90)<br>t.fd(50)<br>t.left(90)<br>t.fd(50)<br>t.left(90)<br>t.end_fill()]]></description>
        <author>swf</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836504</guid>
        <pubDate>Thu, 13 Aug 2020 18:35:20 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836504</link>
        <description><![CDATA[applegame: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836486'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T14:11:17+00:00">13.08.20, 14:11</time></span><div class='quote '>Подловил.</div></div>Да много на чем можно подловить :) Например в D есть атрибуты, которыми можно декорировать все что угодно, а потом рефлексией разбирать и использовать. Та же сериализация, например:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">struct Packet {</div><div class="code_line">&nbsp;&nbsp;string name;</div><div class="code_line">&nbsp;&nbsp;</div><div class="code_line">&nbsp;&nbsp;@optional(&quot;default_type&quot;)</div><div class="code_line">&nbsp;&nbsp;string type;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;@field(&quot;data_info&quot;)</div><div class="code_line">&nbsp;&nbsp;int info;</div><div class="code_line">}</div></ol></div></div></div></div><br>
<br>
В D можно на стадии компиляции импортнуть любой файл и благодаря настоящему CTFE, а не убогому плюсовому constexpr, распарсить этот файл в код. Например так сделан http-шаблонизатор <a class='tag-url' href='https://github.com/rejectedsoftware/diet-ng/blob/master/SPEC.md' target='_blank'>Diet</a>.<br>
Дешный CTFE позволяет генерить парсеры на основе грамматики - <a class='tag-url' href='https://tour.dlang.org/tour/en/dub/pegged' target='_blank'>либка pegged</a><br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836486'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T14:11:17+00:00">13.08.20, 14:11</time></span><div class='quote '>Вообще зачем тебе рефлексия? Любые примеры практического применения мне лично попадались исключительно синтетические.</div></div>Это потому что в плюсах нет рефлексии. ;)<br>
А у меня в проде трудится рефлексия не только для сериализации. В частности, при помощи классов у меня описываются, веб-интерфейсы. А библиотечка рефлексией генерит код для обработки HTTP-запросов.<br>
Упрощенно:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">class DataInterface : WebInterface {</div><div class="code_line">&nbsp;&nbsp;@path(&quot;/data&quot;) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;auto getUsers(string p1, int p2) {...} &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // GET &nbsp;/data/users?p1=a&amp;p2=10</div><div class="code_line">&nbsp;&nbsp; &nbsp;auto getUserItems() {...} &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// GET &nbsp;/data/user/items</div><div class="code_line">&nbsp;&nbsp; &nbsp;auto postUserInfo(string name, uint count) {...} // POST /data/user/info</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;@authenticated</div><div class="code_line">&nbsp;&nbsp;auto getProfile(User user) {...} // GET /profile только для авторизованных пользователей, редирект, если не авторизован</div><div class="code_line">}</div></ol></div></div></div></div><br>
А потом что-то вроде<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">auto server = listenHTTP(new DataInterface());</div></ol></div></div></div></div><br>
И все. Далее оно само зарефлексит DataInterface вытащит из него имена функций, имена и типы параметров, и сгенерит код, для соответствующего роутинга и валидации параметров.<br>
В реальной либе все гораздо мощнее. Там и автоматическая сериализация/десериализация JSON, сессии, хуки и т.д. и т.п.<br>
<br>
Также рефлексия применяется похожим образом для роутинга Remote Procedure Call, с упаковкой параметров функции в MessagePack.]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836503</guid>
        <pubDate>Thu, 13 Aug 2020 17:55:48 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836503</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836486'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T14:11:17+00:00">13.08.20, 14:11</time></span><div class='quote '>Только я всё равно не вижу практического применения этого знания.</div></div><br>
Вчера спешил, хотел именно это спросить раньше тебя, но не получилось&#33;  :&#39;(]]></description>
        <author>JoeUser</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836493</guid>
        <pubDate>Thu, 13 Aug 2020 16:22:32 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836493</link>
        <description><![CDATA[swf: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836445'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T09:05:30+00:00">13.08.20, 09:05</time></span><div class='quote '>Ну мне кажется, что в большинстве курсов студентам можно разрешить на любом языке лабы/курсовые писать (по согласованию с преподавателем).<br>
А сам препод может выбрать для курса тот язык, который лучше по его мнению позволит раскрыть тему.</div></div><br>
В алгоритмических курсах, конечно, можно.<br>
Я студентам говорю: Пишите на любом алгоритмическом языке, который поддерживает рекурсию.]]></description>
        <author>swf</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836488</guid>
        <pubDate>Thu, 13 Aug 2020 14:50:16 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836488</link>
        <description><![CDATA[D_KEY: <strong class='tag-b'>Qraizer</strong>, ну вот сериализацию на C++ ты как предлагаешь делать?]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836487</guid>
        <pubDate>Thu, 13 Aug 2020 14:37:18 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836487</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836486'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T14:11:17+00:00">13.08.20, 14:11</time></span><div class='quote '>Та кто ж будет спорить. Я могу кучу привести примеров клёвых примеров, только практического применения им не будет.</div></div><br>
Ну ты загнул тут, конечно. Подобная штука для enum-ов довольно полезна безотносительно желания повыпендриваться.]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836486</guid>
        <pubDate>Thu, 13 Aug 2020 14:11:17 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836486</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836405'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2020-08-12T15:22:14+00:00">12.08.20, 15:22</time></span><div class='quote '>Давай поэкспериментируем?</div></div>На ком? Найдёшь падаванов? Моим вон 5 минут хватило осознать необходимые базовые принципы STL, чтобы вместо C использовать C++ в своих тестовых примерах. Не чистый пример, да, но показательный.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836421'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-12T18:33:02+00:00">12.08.20, 18:33</time></span><div class='quote '>Вот тебе задача: получить список всех функций-членов произвольного класса.</div></div>Подловил. Ну да, ждём метаклассов. Обещали в C++24. Только я всё равно не вижу практического применения этого знания.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836421'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-12T18:33:02+00:00">12.08.20, 18:33</time></span><div class='quote '>Решение на D, оно несколько неполное, но поверь, раздербанить можно любой тип на мельчайшие составляюшие:<br>
...</div></div>Зачем? Чтобы сериализировать? А ты уверен, что рефлексия даст тебе правильное решение? Вот у тебя класс Connection с удалённым серверном, ну-ка расскажи, как ты рефлексией его сохранишь, а потом восстановишь, пусть даже и на этой же машине. И что тебе вообще даст рефлексия.<br>
Не правильно спросил. Вообще зачем тебе рефлексия? Любые примеры практического применения мне лично попадались исключительно синтетические.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836421'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-12T18:33:02+00:00">12.08.20, 18:33</time></span><div class='quote '>Народ в плюсах жесточайшими путями умудряется кое-как итерировать поля PODов, и сильно гордится этим</div></div>Стереть из интернета и забыть, что вообще подобное где-то когда-то было. Уже вижу, как народ вовсю кинулся визуализировать всякие там Connection-ы, std::filesystem::path-ы итп. Свят-свят-свят. <strong class='tag-b'>applegame</strong>, не заставляй мне читать тебе лекцию об атрибутах объектов и почему они не коллинеарны полям класса. Целью обучения программированию является вообще-то определить правильные практики дизайна кода, а не натаскать на методах их обхода. Если уж натаскивать на методах обхода, то это однозначно не методы проектирования и это однозначно языкозависимые методы.<br>
P.S. Вообще, я уже не уверен, что вы понимаете предмет темы: обучение студентов программированию.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836433'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T07:32:20+00:00">13.08.20, 07:32</time></span><div class='quote '>Довольно изящное решение на мой взгляд.</div></div>Та кто ж будет спорить. Я могу кучу привести примеров клёвых примеров, только практического применения им не будет. <span class="tag-color tag-color-named" data-value="gray" style="color: gray">Замечу, тут речь не о некой технологии программирования, а о конкретной задаче на конкретном языке.</span> Например, наваять некий using std::integer_sequence&lt;&gt;, содержащий первые, скажем 30 простых чисел. Или std::initializer_list&lt;&gt;, содержащий std::tuple&lt;&gt; со всеми сочетаниями элементов из std::integer_sequence&lt;&gt; по 5 из предыдущего элемента. Зачем, кроме как выпендриться?<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836437'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T08:12:20+00:00">13.08.20, 08:12</time></span><div class='quote '>почему не так?</div></div>Вот тут не могу не согласиться. Я тоже не понимаю этого засилья {} везде где ни попадя. Всю историю программеров учили, что инициализация атрибутами выполняется посредством (), а инициализация {} предназначена для агрегатных типов. И эта разница важна, потому как определяют совершенно разные принципы инициализации. Зачем ломать эту концепцию?]]></description>
        <author>Qraizer</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836465</guid>
        <pubDate>Thu, 13 Aug 2020 09:33:18 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836465</link>
        <description><![CDATA[applegame: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836451'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T09:13:28+00:00">13.08.20, 09:13</time></span><div class='quote '>Ну так я сразу сказал, что это костыль. &quot;Костыль&quot; и &quot;изящно&quot; друг другу не всегда противоречат </div></div>Ну это, видимо, субъективно, для меня &quot;изящный костыль&quot; в контексте программирования звучит как оксюморон. :lol:]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836451</guid>
        <pubDate>Thu, 13 Aug 2020 09:13:28 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836451</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836437'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T08:12:20+00:00">13.08.20, 08:12</time></span><div class='quote '>Это решается не при помощи языковых конструкций, а довольно грубым хаком, а именно расковыриванием значения макроса __PRETTY_FUNCTION__</div></div><br>
Ну так я сразу сказал, что это костыль. &quot;Костыль&quot; и &quot;изящно&quot; друг другу не всегда противоречат :)]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836445</guid>
        <pubDate>Thu, 13 Aug 2020 09:05:30 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836445</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836444'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T09:02:55+00:00">13.08.20, 09:02</time></span><div class='quote '>Ну по своему личному желанию можно начинать хоть с брейнфака. Но мы-то говорим об учебных заведениях</div></div><br>
Ну мне кажется, что в большинстве курсов студентам можно разрешить на любом языке лабы/курсовые писать (по согласованию с преподавателем).<br>
А сам препод может выбрать для курса тот язык, который лучше по его мнению позволит раскрыть тему.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>И да, это мое личное мнение.</div></div><br>
У нас у всех так :)]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836444</guid>
        <pubDate>Thu, 13 Aug 2020 09:02:55 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836444</link>
        <description><![CDATA[applegame: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836442'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T08:51:14+00:00">13.08.20, 08:51</time></span><div class='quote '>Нуу... Есть люди, которым он заходит. Почему бы им его не учить? Имеют право.</div></div>Ну по своему личному желанию можно начинать хоть с брейнфака. Но мы-то говорим об учебных заведениях. И да, это мое личное мнение.]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836442</guid>
        <pubDate>Thu, 13 Aug 2020 08:51:14 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836442</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836441'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T08:39:19+00:00">13.08.20, 08:39</time></span><div class='quote '>Ну можно сделать вывод, что C++ крайне плох, как первый язык.</div></div><br>
Ну я то с этим согласен :) <br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>А лично я бы сказал, что он просто плох и учить его нужно только из-за того, что он пока востребован на рынке.</div></div><br>
Нуу... Есть люди, которым он заходит. Почему бы им его не учить? Имеют право.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Кстати тот же D прост в обучении, можно с него начинать. Но маргинальность языка - серьезный аргумент против.</div></div><br>
Именно.]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836441</guid>
        <pubDate>Thu, 13 Aug 2020 08:39:19 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836441</link>
        <description><![CDATA[applegame: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836439'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T08:31:00+00:00">13.08.20, 08:31</time></span><div class='quote '>Так это невозможно сделать при помощи языковых конструкций. На данный момент.<br>
<br>
А тебе сразу сказали, что это костыль </div></div>Костыль костылю рознь. Это не только костыль, но еще и небезопасный хак. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-13T08:46:13+00:00">13.08.20, 08:46</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836439'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T08:31:00+00:00">13.08.20, 08:31</time></span><div class='quote '>Что-то мы ушли от темы обучения...</div></div>Ну можно сделать вывод, что C++ крайне плох, как первый язык. А лично я бы сказал, что он просто плох и учить его нужно только из-за того, что он пока востребован на рынке.<br>
Кстати тот же D прост в обучении, можно с него начинать. Но маргинальность языка - серьезный аргумент против.]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836439</guid>
        <pubDate>Thu, 13 Aug 2020 08:31:00 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836439</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836437'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T08:12:20+00:00">13.08.20, 08:12</time></span><div class='quote '>Покопался в коде и нашел, как там вытаскиваются имена из энума. Это решается не при помощи языковых конструкций, а...</div></div><br>
Так это невозможно сделать при помощи языковых конструкций. На данный момент.<br>
<br>
А тебе сразу сказали, что это костыль :D <br>
<br>
Но в плане интерфейса довольно неплохо сделано. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-13T08:31:16+00:00">13.08.20, 08:31</time></span></span><br>
Что-то мы ушли от темы обучения...]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836437</guid>
        <pubDate>Thu, 13 Aug 2020 08:12:20 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836437</link>
        <description><![CDATA[applegame: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836432'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T07:17:07+00:00">13.08.20, 07:17</time></span><div class='quote '>Ты про это:</div></div>Да, про это.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836433'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T07:32:20+00:00">13.08.20, 07:32</time></span><div class='quote '>Довольно изящное решение на мой взгляд.</div></div>Покопался в коде и нашел, как там вытаскиваются имена из энума. Это решается не при помощи языковых конструкций, а довольно грубым хаком, а именно расковыриванием значения макроса __PRETTY_FUNCTION__ (__FUNCSIG__ в Visual Studio), который мало того, что является не частью языка, а расширением некторых компиляторов, так еще и никак не стандартизирован.<br>
В итоге в коде появляются магические константы, меняющиеся в зависимости от компилятора:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">template &#60;typename E&#62;</div><div class="code_line">constexpr auto n() noexcept {</div><div class="code_line">&nbsp;&nbsp;static_assert(is_enum_v&#60;E&#62;, &quot;magic_enum::detail::n requires enum type.&quot;);</div><div class="code_line">#if defined(MAGIC_ENUM_SUPPORTED) &amp;&amp; MAGIC_ENUM_SUPPORTED</div><div class="code_line"># &nbsp;if defined(__clang__)</div><div class="code_line">&nbsp;&nbsp;constexpr std::string_view name{__PRETTY_FUNCTION__ + 34, sizeof(__PRETTY_FUNCTION__) - 36};</div><div class="code_line"># &nbsp;elif defined(__GNUC__)</div><div class="code_line">&nbsp;&nbsp;constexpr std::string_view name{__PRETTY_FUNCTION__ + 49, sizeof(__PRETTY_FUNCTION__) - 51};</div><div class="code_line"># &nbsp;elif defined(_MSC_VER)</div><div class="code_line">&nbsp;&nbsp;constexpr std::string_view name{__FUNCSIG__ + 40, sizeof(__FUNCSIG__) - 57};</div><div class="code_line"># &nbsp;endif</div><div class="code_line">&nbsp;&nbsp;return static_string&#60;name.size()&#62;{name};</div><div class="code_line">#else</div><div class="code_line">&nbsp;&nbsp;return std::string_view{}; // Unsupported compiler.</div><div class="code_line">#endif</div><div class="code_line">}</div></ol></div></div></div></div><br>
То бишь, если слегка поменяется формат этого макроса, все поломается. И ты это называешь изящным решением? :lol:<br>
<br>
Плюсы становятся всё хуже и хуже, нагромождение новых синтаксических конструкций, вот что это такое?<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">constexpr std::string_view name{..., ...};</div></ol></div></div></div></div><br>
почему не так?<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">constexpr std::string_view name(..., ...);</div></ol></div></div></div></div>]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836433</guid>
        <pubDate>Thu, 13 Aug 2020 07:32:20 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836433</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836431'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T07:08:42+00:00">13.08.20, 07:08</time></span><div class='quote '>А что в нем клёвого? </div></div><br>
Довольно изящное решение на мой взгляд. <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836431'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T07:08:42+00:00">13.08.20, 07:08</time></span><div class='quote '>Список идентификаторов в enum-е получить можно?</div></div><br>
И список enum_ов, и их строковые представления, и каст в строку и обратно с проверками, и всё это constexpr.]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836432</guid>
        <pubDate>Thu, 13 Aug 2020 07:17:07 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836432</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836431'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T07:08:42+00:00">13.08.20, 07:08</time></span><div class='quote '>Список идентификаторов в enum-е получить можно?</div></div><br>
Ты про это:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">constexpr auto color_names = magic_enum::enum_names&#60;Color&#62;();</div><div class="code_line">// color_names -&#62; {&quot;RED&quot;, &quot;BLUE&quot;, &quot;GREEN&quot;}</div><div class="code_line">// color_names[0] -&#62; &quot;RED&quot;</div></ol></div></div></div></div><br>
?]]></description>
        <author>D_KEY</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836431</guid>
        <pubDate>Thu, 13 Aug 2020 07:08:42 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836431</link>
        <description><![CDATA[applegame: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836428'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2020-08-13T04:39:19+00:00">13.08.20, 04:39</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836421'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-12T18:33:02+00:00">12.08.20, 18:33</time></span><div class='quote '>Народ в плюсах жесточайшими путями умудряется кое-как итерировать поля PODов, и сильно гордится этим - <a class='tag-url' href='https://habr.com/ru/post/344206/' target='_blank'>https://habr.com/ru/post/344206/</a> </div></div><br>
А мне <a class='tag-url' href='https://github.com/Neargye/magic_enum' target='_blank'>вот такая</a> итерация по enum-ам нравится. Да, костыль, но клёвый :D</div></div><br>
А что в нем клёвого? Список идентификаторов в enum-е получить можно?]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836428</guid>
        <pubDate>Thu, 13 Aug 2020 04:39:19 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836428</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836421'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-12T18:33:02+00:00">12.08.20, 18:33</time></span><div class='quote '>Народ в плюсах жесточайшими путями умудряется кое-как итерировать поля PODов, и сильно гордится этим - <a class='tag-url' href='https://habr.com/ru/post/344206/' target='_blank'>https://habr.com/ru/post/344206/</a> </div></div><br>
А мне <a class='tag-url' href='https://github.com/Neargye/magic_enum' target='_blank'>вот такая</a> итерация по enum-ам нравится. Да, костыль, но клёвый :D]]></description>
        <author>OpenGL</author>
        <category>Holy Wars</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836421</guid>
        <pubDate>Wed, 12 Aug 2020 18:33:02 +0000</pubDate>
        <title>Язык для обучения программированию</title>
        <link>https://forum.sources.ru/index.php?showtopic=419241&amp;view=findpost&amp;p=3836421</link>
        <description><![CDATA[applegame: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836403'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2020-08-12T14:13:52+00:00">12.08.20, 14:13</time></span><div class='quote '>Ты регулярно приводишь примеры из D якобы нереализуемого на C++</div></div>В плюсы уже завезли статическую рефлексию? И я имел в виду не примеси, а строковые миксины, в D - это замена макросам, хоть и неуклюжая.<br>
Вот тебе задача: получить список всех функций-членов произвольного класса.<br>
Или, например, сделать аналог <a class='tag-url' href='https://tour.dlang.org/tour/ru/gems/opdispatch-opapply' target='_blank'>opDispatch</a>. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-08-12T19:07:56+00:00">12.08.20, 19:07</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836421'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>applegame &#064; <time class="tag-quote__quoted-time" datetime="2020-08-12T18:33:02+00:00">12.08.20, 18:33</time></span><div class='quote '>Вот тебе задача: получить список всех функций-членов произвольного класса.</div></div><br>
Решение на D, оно несколько неполное, но поверь, раздербанить можно любой тип на мельчайшие составляюшие:<br>
<a class='tag-url' href='https://glot.io/snippets/fq6iq48un9' target='_blank'>https://glot.io/snippets/fq6iq48un9</a><br>
<br>
Народ в плюсах жесточайшими путями умудряется кое-как итерировать поля PODов, и сильно гордится этим - <a class='tag-url' href='https://habr.com/ru/post/344206/' target='_blank'>https://habr.com/ru/post/344206/</a> :lol:]]></description>
        <author>applegame</author>
        <category>Holy Wars</category>
      </item>
	
      </channel>
      </rss>
	