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

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
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
// https://www.linux.org.ru/forum/development/16099510/
// c++ шаблон zip-like итератора? 
// В python есть крайне полезные функции zip, enumerate, range. Мне нужно что-то подобное для cpp/cuda (c++17).
// Если c range и enumerate более менее понятно, то как реализовать zip не соображу. Семантически это должно быть variadic template

template<typename t, typename... ts>
class zip : zip<ts...>{
	zip(t arg, ts... args);
	struct iterator;
	begin() -> iterator;
	end()   -> iterator;
};

// Где итератор возвращает кортеж ссылок на элементы что с контейнерами можно было работать как:

for(auto [x,y,z] : zip(xs,ys,zs))

// Рекурсивное наследование должно быть ограничено тривиальным случаем одного аргумента.
//Но, кажется, я думаю не в правильную сторону, в частности, не соображу как рекурсивно вывести тип возвращаемых итератором кортежей:

using ret_type = tuple<decltype(begin(declval<t>())), decltype(???)>

Блять, как всё сложно. Какие-то рекурсивные выводы типов возвращаемых итераторов кортежей блядь.

Вот если б вместо ущербного триждыблядского типодрочерского шаблоноговна сделали что-то помощнее...

Запостил: j123123 j123123, (Updated )

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

  • https://www.linux.org.ru/forum/development/16099510?cid=16099996

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

    Очередное мощное заявление Царя.
    Ответить
    • Что значит "Никто в мире до сих пор этого не делал и не сделал"? А что насчет LISP?

      "Причём в языке с самой мощной системой типов и синтаксическими возможностями." - какой в пизду самой мощной системой типов и синтаксическими возможностями? Кресты - слой зловонного дерьмища, намазанного на сишку криворукими макаками. Вывод типов по Хиндли-Милнеру пусть в крестах покажет
      Ответить
    • Я против буста. Да вообще против библиотек, и вообще C++. Да и вообще против программирования, я уже говорил, что в компах не разбираюсь.
      Ответить
      • ну так сам напиши, если так надо
        тем более в буусте, насколько я бегло смотрел, проблема в том, чтобы зипуемые коллекции были одинаковой длины - типа если неодинаковые, тогда сначала померяйте все, потом передавайте слайсы (иначе типа ниификтивный луп из семи залуп будет)

        и есть ещё отдельная либа ranges-v3, в которой (вероятно) нет и последней проблемы
        Ответить
    • В языке "D" там в миксинах дрочево с непосредственно текстом (кодом), а надо чтоб с AST, надо чтоб гомоиконность!
      Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

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


    8