- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
#include <iostream>
#include <functional>
#include <array>
template<typename F, int... I>
std::array<int, sizeof...(I)> materializeImpl(const F & f, std::integer_sequence<int, I...>)
{
return { (f(), I)... };
}
template<size_t N, typename F, typename I = std::make_integer_sequence<int, N>>
auto materialize(const F & f)
{
return materializeImpl(f, I{});
}
template<size_t N, typename F>
void times(const F & f)
{
(void)materialize<N>([&f]() { f(); return 0; });
}
int main()
{
times<22>([]() { std::cout << "Hello There." << std::endl; });
return EXIT_SUCCESS;
}
gost 19.12.2019 01:34 # 0
DypHuu_niBEHb 19.12.2019 01:35 # −1
Мы не обязаны понимать "английский"
j123123 19.12.2019 06:32 # 0
bormand 19.12.2019 08:15 # 0
gost 19.12.2019 08:27 # 0
Но из-за передачи лямбды по значению конпелятор высирает говно. Если сделать ссылку — получится получше. «Шланг» генерирует экий багор: специализации times<16> и times<6>, причём из первой прыгает во вторую хвостовым вызовом: https://gcc.godbolt.org/z/NExUdf. «GCC» просто выдаёт скучную анролленную портянку.
j123123 19.12.2019 08:51 # +8
https://wandbox.org/permlink/A77KBsvGfuyvzpHS
https://govnokod.ru/13546
Antifriz_otrabotanyi 19.12.2019 19:46 # 0
j123123 30.12.2019 15:53 # 0
Крестоговно — это иерархическая структура, использующая репрессию. Стая птиц, летящих на юг, — это не крестоговно, но если птица отстает и ее заклевывают остальные — это крестоговно. Единственный способ борьбы с крестоговном, который я указываю в «Равинагаре», — это ассемблер. Ассемблер как структура в смысле набора связок и растущей сложности. Ассемблер вполне может принять крестоговно и начать на него работать до определенного момента, и крестоговно не заметит, что происходит уничтожение его самого. И именно таким образом возможна борьба. Не антикрестоговноом, не отрицанием метушни, а деформацией. Противостояние не работает, потому что оно не может работать в принципе. Противостояния низкоуровневого и высокоуровневого нет, есть только власть программистов над теми и над другими. Там, куда пишется больше кода, и происходит победа. Ассемблер может идти против этого, она может давать какой-то маргинальный результат, рождать совершенно иные структуры — как оркестр без дирижера может начать играть принципиально новую музыку. Когда ты атакуешь говноабстракции крестоговна, она задает тебе вопрос: «Вот ты победишь, и что ты сделаешь? Построишь новые говноабстракции?». А ассемблер просто хохочет над этим вопросом.
Stallman 19.12.2019 20:30 # +2
phpBidlokoder2 19.12.2019 22:37 # 0
Antifriz_otrabotanyi 20.12.2019 05:30 # 0
j123123 26.12.2019 13:20 # 0
j123123 26.12.2019 13:21 # 0
XYPO3BO3 27.12.2019 00:34 # 0
zhigolo 27.12.2019 00:40 # 0
j123123 27.12.2019 09:48 # 0