<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Комментарии / Профиль azrielfuzz]]></title>
    <link>https://habr.com/ru/users/azrielfuzz/comments/</link>
    <description><![CDATA[Хабр: комментарии пользователя azrielfuzz]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Tue, 28 Apr 2026 23:28:30 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      

      
        
  
    <item>
      <title>29.10.2018 09:00:55 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/424593/#comment_19296551</guid>
      <link>https://habr.com/ru/articles/424593/#comment_19296551</link>
      <description><![CDATA[Признаю)]]></description>
      <pubDate>Mon, 29 Oct 2018 09:00:55 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>05.10.2018 09:55:45 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/424593/#comment_19196013</guid>
      <link>https://habr.com/ru/articles/424593/#comment_19196013</link>
      <description><![CDATA[Все объекты сравниваются по значению, если это возможно; в противном случае происходит сравнение по адресу. Конкретно лямбды сравниваются по адресу.]]></description>
      <pubDate>Fri, 05 Oct 2018 09:55:45 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>03.10.2018 08:14:48 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/424593/#comment_19186043</guid>
      <link>https://habr.com/ru/articles/424593/#comment_19186043</link>
      <description><![CDATA[Наоборот, сможете. И объект-функтор, и лямбда-выражение, и экземпляр std::function, и отдельную функцию (ну, и метод класса/структуры, конечно).]]></description>
      <pubDate>Wed, 03 Oct 2018 08:14:48 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>02.10.2018 10:04:45 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/424593/#comment_19182585</guid>
      <link>https://habr.com/ru/articles/424593/#comment_19182585</link>
      <description><![CDATA[Этому был посвящён <a href="#HandlerCompare">целый пункт</a>.<br>
Но если вкратце: функторы сравниваются по адресу объекта, методы (функции-члены) — по адресу экземпляра класса (которому они принадлежат) и своему адресу.<br>
Естественно, сравниваются только однотипные объекты: как функторы, так и методы классов. Разнотипные обработчики считаются неравными.]]></description>
      <pubDate>Tue, 02 Oct 2018 10:04:45 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>01.10.2018 09:01:54 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/424593/#comment_19178183</guid>
      <link>https://habr.com/ru/articles/424593/#comment_19178183</link>
      <description><![CDATA[Большое спасибо за разъяснение.<br>
Явно есть, куда двигаться дальше.]]></description>
      <pubDate>Mon, 01 Oct 2018 09:01:54 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>28.09.2018 15:41:43 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/424593/#comment_19171155</guid>
      <link>https://habr.com/ru/articles/424593/#comment_19171155</link>
      <description><![CDATA[Это действительно решило проблему сборку (хоть предупреждение сборщика и осталось).<br>
Спасибо; недостаток убираю.]]></description>
      <pubDate>Fri, 28 Sep 2018 15:41:43 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>28.09.2018 15:33:41 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/424593/#comment_19171119</guid>
      <link>https://habr.com/ru/articles/424593/#comment_19171119</link>
      <description><![CDATA[<blockquote>Такие вещи лучше прятать в cpp файлы.</blockquote> А как это сделать в случае с шаблонами? Вы можете привести небольшой пример?]]></description>
      <pubDate>Fri, 28 Sep 2018 15:33:41 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>28.09.2018 15:28:47 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/424593/#comment_19171101</guid>
      <link>https://habr.com/ru/articles/424593/#comment_19171101</link>
      <description><![CDATA[Спасибо за важное замечание, <a href="#ThreadRev">кое-что подправил</a> (в частности, параллельный вызов события).<br>
<blockquote>Ну и нет нет никаких гарантий с точки зрения исключений в обработчиках</blockquote> А вот тут не совсем понятно, почему событие должно обрабатывать исключения в клиентском коде (если можно так назвать обработчики).]]></description>
      <pubDate>Fri, 28 Sep 2018 15:28:47 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>28.09.2018 09:32:51 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/424593/#comment_19169601</guid>
      <link>https://habr.com/ru/articles/424593/#comment_19169601</link>
      <description><![CDATA[Не очень понятно, при чём здесь C# (которым я, кстати, во многом вдохновлялся), если в нём, в отличие от C++, данный механизм встроен в язык. Насчёт «ради Qt» тоже не очень понятно, потому что данная реализация позволяет как раз не использовать сторонние библиотеки и фреймворки (по крайней мере, только ради сигналов).]]></description>
      <pubDate>Fri, 28 Sep 2018 09:32:51 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>28.09.2018 09:27:15 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/424593/#comment_19169541</guid>
      <link>https://habr.com/ru/articles/424593/#comment_19169541</link>
      <description><![CDATA[А какая у Вас версия Qt? Перепроверил — всё подтвердилось. Я сейчас использую Qt5.6.1-1 (надо бы, конечно, обновиться...). Компилятор — VS++14 (соответственно, и MSBuild в качестве сборщика).<br>
Ошибка на этапе сборке.<br>
При описанном в cpp-файле классе с директивой Q_OBJECT выдаётся предупреждение <pre><code>Warning MSB8017 A circular dependency has been detected while executing custom build commands for item "GeneratedFiles\Debug\filename.moc". This may cause incremental build to work incorrectly.</code></pre> и все методы, которые должны быть сгенерированы moc'ом (metaObject, qt_metacast и т.д.), становятся unresolved, вызывая соответствующие ошибки. Кроме того в Generated Files, где под каждую конфигурацию должен присутствовать сгенерированный файлик <i>moc_filename.cpp</i>, находится только несуществующий <i>filename.moc</i>.<br>
Возможно, дело именно в MSBuild'е или его взаимодействии с Qt. Если это и вправду так, нужно будет действительно убрать этот пункт из недостатков.]]></description>
      <pubDate>Fri, 28 Sep 2018 09:27:15 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>28.09.2018 08:57:15 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/424593/#comment_19169377</guid>
      <link>https://habr.com/ru/articles/424593/#comment_19169377</link>
      <description><![CDATA[Спасибо за поддержку совместимости с GCC!]]></description>
      <pubDate>Fri, 28 Sep 2018 08:57:15 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>27.09.2018 14:59:33 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/424593/#comment_19166507</guid>
      <link>https://habr.com/ru/articles/424593/#comment_19166507</link>
      <description><![CDATA[<blockquote>C++11 это вы преуменьшаете :) std::shared_mutex ----&gt; C++17.</blockquote>Действительно, размахнулся что-то.<br>
<blockquote>Не собралось под GCC из-за некоторого несоответствия стандарту</blockquote>Это всё моя привычка разработки под VC. Надо будет поисправлять.<br>
<blockquote>У меня впечатление, что shared_ptr для Holder не обязателен и я бы попытался заменить его на unique_ptr в списке обработчиков + сырой readonly указатель во всех остальных местах.</blockquote>Немного не понял. В списке обработчиков как раз не Holder, а EventHandler, в котором уже Holder. Вы всё-таки при EventHandler?<br>
<blockquote>лучше использовать std::make_shared</blockquote>там, где применяется не он, используется private конструктор (в Holder'ах, например, это сделано для правильной инициализации поля m_me).<br>
<blockquote>Некоторые внутренние типы лучше спрятать из публичного интерфейса</blockquote>так, вроде убраны же в анонимные namespace'ы.<br>
А вообще, за замечания спасибо)]]></description>
      <pubDate>Thu, 27 Sep 2018 14:59:33 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>27.09.2018 14:48:39 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/424593/#comment_19166443</guid>
      <link>https://habr.com/ru/articles/424593/#comment_19166443</link>
      <description><![CDATA[А у Вас класс, описанный в .cpp, имеет директиву Q_OBJECT (и соответственно, её применение в виде, например, сигналов)?]]></description>
      <pubDate>Thu, 27 Sep 2018 14:48:39 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>27.09.2018 10:21:56 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/424593/#comment_19164963</guid>
      <link>https://habr.com/ru/articles/424593/#comment_19164963</link>
      <description><![CDATA[<blockquote>В контексте GUI ожидается граф сцены, в ивенте содержатся координаты мыши, а ивент проходится по графу сцены.</blockquote><br>
Как я уже сказал, я не считаю этот подход равнозначным. Как Вы верно заметили, даже в Qt реализованы они оба (и The Event System, и Signals &amp; Slots). Кроме того, use case'ов много (не только лишь GUI), не везде удобно одно и то же.<br>
<blockquote>Тогда очевидный вопрос зачем? Когда есть множество реализаций тех же сингалов?</blockquote><br>
Согласен. Как минимум, когда не хочется/можется подключать библиотеку с очередной реализаций сигналов. Возможно, кому-то будет удобно и полезно. Плюс, небольшая демонстрация разных возможностей С++ (но это тоже скорее доп).]]></description>
      <pubDate>Thu, 27 Sep 2018 10:21:56 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>27.09.2018 09:52:50 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/424593/#comment_19164789</guid>
      <link>https://habr.com/ru/articles/424593/#comment_19164789</link>
      <description><![CDATA[Так, вроде бы, там написано, зачем. Вы с чем-то из этого не согласны?]]></description>
      <pubDate>Thu, 27 Sep 2018 09:52:50 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>27.09.2018 09:47:32 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/424593/#comment_19164751</guid>
      <link>https://habr.com/ru/articles/424593/#comment_19164751</link>
      <description><![CDATA[<blockquote>В Qt есть The Event System и Signals &amp; Slots.</blockquote><br>
Данная реализация как раз представляет собой нечто близкое к 'Signals &amp; Slots', а не к 'The Event System'; последнее ближе к очереди (циклу) событий, там объекты взаимодействуют через цикл событий, а не напрямую. На мой взгляд, это всё же другой подход.<br>
<blockquote>Почему для сравнения берутся сигналы из Qt, а не сигналы из Boost?</blockquote><br>
Вообще не было цели сравнивать хоть с чем-то. Это, скорее, просто бонус, вызванный тем, что с сигналами/слотами Qt мне приходилось работать (а с сигналами из boost нет).<br>]]></description>
      <pubDate>Thu, 27 Sep 2018 09:47:32 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>17.01.2017 13:53:24 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/318236/#comment_10017792</guid>
      <link>https://habr.com/ru/articles/318236/#comment_10017792</link>
      <description><![CDATA[если честно, не понял, зачем там <i>void()</i>.<br/>
разве для составления <i>unused</i> (который по сути можно объявить как <i>bool unused[] =</i>) не достаточно будет только параметра <i>true</i>?]]></description>
      <pubDate>Tue, 17 Jan 2017 13:53:24 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>17.01.2017 11:37:10 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/318236/#comment_10017562</guid>
      <link>https://habr.com/ru/articles/318236/#comment_10017562</link>
      <description><![CDATA[<blockquote>Ну и, я думаю, стоило бы упомянуть <a href="http://en.cppreference.com/w/cpp/language/fold">C++ 17 fold expressions</a> </blockquote>Спасибо за ликбез, я как-то пропустил сию замечательную вещь.]]></description>
      <pubDate>Tue, 17 Jan 2017 11:37:10 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

  
    <item>
      <title>17.01.2017 11:36:20 </title>
      <guid isPermaLink="true">https://habr.com/ru/articles/318236/#comment_10017558</guid>
      <link>https://habr.com/ru/articles/318236/#comment_10017558</link>
      <description><![CDATA[<blockquote>И лучше всё-таки использовать универсальные ссылки и forward, а не const &</blockquote>Соглашусь. Весьма небрежно с моей стороны.]]></description>
      <pubDate>Tue, 17 Jan 2017 11:36:20 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
    </item>
  

      

      

    
  </channel>
</rss>
