Кресты / Говнокод #25752 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 Elvenfighter, (Updated )

Комментарии (8) 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::
      Ответить
    • Как бы надо, но fold expression фолдит выражения через операции, а ; не операция
      Ответить
      • Не ебу, сделай мне красиво так, чтоб я понял. Я не обязан знать языки для калькуляторов.
        Ответить
      • Не знаю крестов, но попробую:
        <?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 года, когда в рамках проекта «Новороссия» Кремль попробовал отделить юго-восточную часть Украины. После того как эта стратегия потерпела неудачу и привела только к созданию «марионеточных государств» в Донецке и Луганске, Кремль начал активно пропагандировать в Украине сепаратизм в надежде на т.н. «федерализацию» страны. Эти попытки не прекращаются и по сей день.

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

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

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8