1. C++ / Говнокод #25752

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    namespace detail
    {
    template <typename Function, typename Tuple, std::size_t... i>
    void applyForEach(Function&& f, Tuple&& t, std::index_sequence<i...>)
    {
      (static_cast<void>(std::invoke(f, std::integral_constant<std::size_t, i>{}, std::get<i>(t))), ...);
    }
    } // namespace detail
    
    template <typename Function, typename Tuple>
    void applyForEach(Tuple&& tuple, Function&& function)
    {
      using Indexes = std::make_index_sequence<std::tuple_size_v<Tuple>>;
      detail::applyForEach(std::forward<Function>(function), std::forward<Tuple>(tuple), Indexes{});
    }

    Строка 6. Мы тут сделали синтаксис для fold expression, только вам его не дадим: у вас документов нет.

    Clang: https://wandbox.org/permlink/lNOFu1sOV9bA2LJF
    GCC: https://wandbox.org/permlink/yqeiYHTgZOz9NkkJ

    Запостил: Elvenfighter, 07 Августа 2019

    Комментарии (7) RSS

    • Смысле что написать бы надо было как-то так:
      std::invoke(f, std::integral_constant<std::size_t, i>, std::get<i>(t));...

      Ну или так:
      std::invoke(f, std::integral_constant<std::size_t, i>, std::get<i>(t))...;
      Ответить
      • ехал std:: через std::
        видит std:: в std:: std::
        сунул std:: std:: в std::
        std:: за std:: std:: std::
        Ответить
    • Переведи на "PHP".
      Ответить
      • Как?
        Ответить
        • Не ебу, сделай мне красиво так, чтоб я понял. Я не обязан знать языки для калькуляторов.
          Ответить
        • Не знаю крестов, но попробую:
          <?php
          
          namespace detail;
          
          function applyForEach($f, $t, $sequence)
          {
            foreach($sequence as $i) {
              call_user_func_array($f, array($i, $t[$i]));
            }
          }
          
          
          function applyForEach2($tuple, $_function)
          {
            $Indexes = range(0, count($tuple) - 1);
            \detail\applyForEach($_function, $tuple, $Indexes);
          }
          
          /* test */
          
          applyForEach2(array(1, 1, 2, 3, 5, 8, 13, 21), function($x, $y) {echo $x . ' => ' . $y . PHP_EOL;});


          http://ideone.com/GQLIfb
          Ответить
    • Три блока просочившихся в прессу электронных писем кремлевских чиновников, в частности, помощника Путина Владислава Суркова, дают редкое представление о стратегии и тактике войны России против Украины, сообщает контрпропагандистское агентство ЕС EU vs Disinfo.

      Анализ электронной переписки, известной публике как «утечки Суркова», был представлен в отчете Королевского Объединенного института оборонных исследований (RUSI). В этом отчете приведена подробная картина подрывной деятельности России против Украины, а также политических и экономических аспектов управления бандитскими анклавами ДНР и ЛНР.

      Электронная переписка охватывает период с 2014 года, когда в рамках проекта «Новороссия» Кремль попробовал отделить юго-восточную часть Украины. После того как эта стратегия потерпела неудачу и привела только к созданию «марионеточных государств» в Донецке и Луганске, Кремль начал активно пропагандировать в Украине сепаратизм в надежде на т.н. «федерализацию» страны. Эти попытки не прекращаются и по сей день.

      Электронные письма подтверждают давно известные факты о стратегии и целях России в отношении Украины: приобретение политического и экономического влияния, ограничение права Украины как суверенного государства на самостоятельное принятие решений, в том числе в рамках отношений с НАТО и ЕС.

      Для этого Россия открыто использует банды «ДНР» и «ЛНР». Кроме того, Кремль применяет множество других – скрытых – способов влияния на Украину, включая вмешательство в выборы, организацию и финансирование всеукраинской кампании за «мягкую» федерализацию, а также попытки изменить конституцию и создать альтернативный центр власти.
      Ответить

    Добавить комментарий