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

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
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
#include <iostream>

struct empty_struct{};

template<char S, typename N>
struct char_type
{
	static const char value = S;
	typedef N next;
};

typedef
	char_type<'h', 
	char_type<'e',
	char_type<'l',
	char_type<'l',
	char_type<'o',
	char_type<' ',
	char_type<'w',
	char_type<'o',
	char_type<'r',
	char_type<'l',
	char_type<'d',
	char_type<'!',
	char_type<'\n', empty_struct> > > > > > > > > > > > > data_type;

template<typename T>
void print()
{
	std::cout << T::value;
	print<T::next>();
}

template<>
void print<empty_struct>()
{
}

int main(int argc, char* argv[])
{
	print<data_type>();

	return 0;
}

Такой простой hello world!

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

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

    • это все-таки скорее кортеж, а не связной список, у списка возможностей побольше будет.
      Ответить
      • Нет. Это иммутабильный связанный список. В таком элементы можно добавить\убрать\подсчитать\доступ по индексу и сортировку устроить. См Loki от Андрейки Александреску. Там, конечно, список немного другой, но идея та же.
        Ответить
        • Или иммутабельный, или можно удалить / добавить. Если чесно, я не на столько хорошо знаю язык, чтобы судить, но я бы не придумал способ, как тут добавить элемент. В C++ можно в рантайме поменять то что из этого шаблона сгенерируется и вместо одного типа подставить другой?
          Ответить
          • Например, в конец иммутабильного списка добавляют так:
            var immuatbleList= new TImmutableList(oldImmuatbleList, additionItem);
            Так же и в середину. То есть пересоздав его. На уровне шаблонов C++ также и сортируют списки и тд...
            Ответить
            • че за var?
              где тут, блеать, Цэпэпэ?

              у ЦэПэПэГовно в бошке смешались типы и данные
              Ответить
              • Это псевдокод для демонстрации описанного принципа.
                Ответить
      • классический однонаправленный связный список: поле данных и указатель на след. элемент.
        Ответить
        • Список, по задумке, динамическая структура, куда можно добавлять, или откуда можно удалять элементы. Иначе - какй смысл? - проще массив использовать. Хотя, опять же, я спорить не стану ввиду комментария выше - может я просто не знаю чего.
          Ответить
          • >Иначе - какй смысл?
            Никакого в данном случае. Чувак решил повыпендриваться.
            У Андрейки были списки типов, а не данных, поэтому в этом был смысл.
            Ответить
          • Ну, а если вы список один раз сформировали и больше не трогаете, это же не делает его не_списком.
            Простоту и смысл искать в кодах на ГК не надо 🙂
            Ответить
          • Этот список можно перекорежить как угодно, но это список времени компиляции, соответственно и оперировать им можно на этапе компиляции как угодно, было бы желание.
            Ответить
      • понятно, что Hello world так не делается:)
        в смысле, демонстрация возможностей шаблонов.
        Ответить
  • Хероподгандонное трипиздомудоблядское захуище.
    Ответить
      • Ну это всяко лучше, чем связный список на шаблонах.
        Ответить
  • забавно наблюдать дискуссию уродов о пластической хирургии.
    Ответить
    • Посмотри на нас свысока, о рогатая глазастая красная залупа...
      Ответить
        • да, да, да,..
          И объясните дяденьке наконец:
          # почему в данном случае значение some_var1 не раскрывается?
          some_var1="1 2 3"
          some_var2='1 2 3 $some_var1'
          
          echo $some_var2

          PS линуксоид хренов

          И это не твоё случайно?

          Ты отдалась другому,
          И я забыл тебя.
          Твои глаза сияли,
          Когда любил тебя
          Мой любопытный взгляд.

          Ответить
        • пап!
          поставь нам хаскелл на икс-бокс, блеать!
          будь мужиком!
          Ответить
  • - Сидим, пьём, а Артур Атарбекович в Лондоне важные переговоры ведёт. Если у него всё получиться, то для нас будет очень хорошо.
    Ответить

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

Помни, guest, за тобой могут следить!

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


    8