- 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
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
// A sample standard C++20 program that prints
// the first N Pythagorean triples.
#include <iostream>
#include <optional>
#include <ranges> // New header!
using namespace std;
// maybe_view defines a view over zero or one
// objects.
template<Semiregular T>
struct maybe_view : view_interface<maybe_view<T>> {
maybe_view() = default;
maybe_view(T t) : data_(std::move(t)) {
}
T const *begin() const noexcept {
return data_ ? &*data_ : nullptr;
}
T const *end() const noexcept {
return data_ ? &*data_ + 1 : nullptr;
}
private:
optional<T> data_{};
};
// "for_each" creates a new view by applying a
// transformation to each element in an input
// range, and flattening the resulting range of
// ranges.
// (This uses one syntax for constrained lambdas
// in C++20.)
inline constexpr auto for_each =
[]<Range R,
Iterator I = iterator_t<R>,
IndirectUnaryInvocable<I> Fun>(R&& r, Fun fun)
requires Range<indirect_result_t<Fun, I>> {
return std::forward<R>(r)
| view::transform(std::move(fun))
| view::join;
};
// "yield_if" takes a bool and a value and
// returns a view of zero or one elements.
inline constexpr auto yield_if =
[]<Semiregular T>(bool b, T x) {
return b ? maybe_view{std::move(x)}
: maybe_view<T>{};
};
int main() {
// Define an infinite range of all the
// Pythagorean triples:
using view::iota;
auto triples =
for_each(iota(1), [](int z) {
return for_each(iota(1, z+1), [=](int x) {
return for_each(iota(x, z+1), [=](int y) {
return yield_if(x*x + y*y == z*z,
make_tuple(x, y, z));
});
});
});
// Display the first 10 triples
for(auto triple : triples | view::take(10)) {
cout << '('
<< get<0>(triple) << ','
<< get<1>(triple) << ','
<< get<2>(triple) << ')' << '\n';
}
}
«C++20»: ещё больше модерна! Ещё больше шаблонов! Ещё больше ебанутых конструкций! Ещё больше блядского цирка!
s: http://aras-p.info/blog/2018/12/28/Modern-C-Lamentations/
gost 30.12.2018 13:01 # 0
gost 30.12.2018 13:07 # 0
bormand 30.12.2018 13:12 # 0
gost 30.12.2018 13:13 # +2
Morgoth 30.12.2018 13:39 # +5
j123123 30.12.2018 13:37 # 0
А зачем на этом вообще писать, если на этом так сложно писать хоть сколько-нибудь рабочие программы? Может набрейнфак сразу тогда?
gost 30.12.2018 13:38 # +1
Чтобы не уволили же!
j123123 30.12.2018 13:52 # +1
gost 30.12.2018 13:58 # +3
А ещё выбор языка надо как-то обосновывать начальству, и если в случае «C++» можно наплести про скорость, современность, надёжность и вообще миллионы мух, то обосновать «Brainfuck» будет проблематично. А если начальства нет — так и увольнять некому, надо на нормальном языке писать.
j123123 30.12.2018 14:19 # +1
> А ещё выбор языка надо как-то обосновывать начальству, и если в случае «C++» можно наплести про скорость, современность, надёжность и вообще миллионы мух, то обосновать «Brainfuck» будет проблематично. А если начальства нет — так и увольнять некому, надо на нормальном языке писать.
Ну да, это как сравнивать больного олигофренией в степени имбецильности с какими-нибудь поехавшим психом, считающим что его рептилоиды с планеты Нибиру похитили и вживили ему чип в анус. У первого нет вообще никаких шансов кого-либо в чем-либо убедить т.к. он полный дебил, а второй может создать псевдорелигиозную секту с ящериками и Иисусами, в которую наберет таких же ебанутых психов.
В общем от брейнфака (от имбецилов) вреда явно меньше, чем от modern C++ (реально поехавших ебанавтов, агитирущих других людей тоже этот в этот пиздец уверовать)
Morgoth 30.12.2018 14:31 # +1
Какая глупость, всем давно уже известно что рептилоиды не из нашей солнечной системы.
Morgoth 30.12.2018 14:01 # 0
bormand 30.12.2018 14:04 # 0
Morgoth 30.12.2018 14:11 # 0
bormand 30.12.2018 17:55 # 0
j123123 30.12.2018 18:15 # +1
bormand 30.12.2018 18:28 # −2
BETEP 30.12.2018 19:04 # −101
На листах одной старой книжки было написано, что-то про "выполнить логический сдвиг...". Там ещё высохший комар лежал между страниц.
KAPABAH 30.12.2018 19:06 # 0
j123123 30.12.2018 19:25 # 0
bormand 30.12.2018 19:05 # +1
bormand 30.12.2018 14:03 # 0
Morgoth 30.12.2018 14:36 # 0
j123123 30.12.2018 16:23 # 0
Morgoth 30.12.2018 16:31 # 0
bormand 30.12.2018 17:55 # +3
guest8 30.12.2018 13:16 # −999
gost 30.12.2018 13:35 # +2
guest8 30.12.2018 14:44 # −999
roman-kashitsyn 30.12.2018 22:46 # +6
LispGovno 30.12.2018 23:16 # +3
GravatarGovno 21.07.2021 00:13 # 0
gost 31.12.2018 00:47 # +3
guest8 30.12.2018 23:38 # −999
gost 30.12.2018 23:50 # +2
crestoblyad 30.12.2018 13:29 # 0
crestoblyad 30.12.2018 13:30 # +2
crestoblyad 30.12.2018 13:31 # +2
Morgoth 30.12.2018 13:37 # 0
crestoblyad 30.12.2018 13:45 # 0
Morgoth 30.12.2018 13:54 # +1
j123123 30.12.2018 13:57 # +2
Гомоиконы!
crestoblyad 30.12.2018 15:57 # 0
j123123 30.12.2018 16:18 # +2
crestoblyad 30.12.2018 18:25 # +1
guest8 30.12.2018 23:44 # −999
nemyx 30.12.2018 20:39 # 0
http://php.net/manual/ru/book.ds.php
Такими темпами в "PHP" скоро будет аналог "STL" и на нём можно будет писать, почти как на "C++".
crestoblyad 30.12.2018 20:59 # 0
bormand 30.12.2018 22:17 # 0
Tarkun 30.12.2018 22:21 # 0
Хоть си-плас-плас,
Всё равно
You shall not pass.
6A9lHuCT 01.01.2019 00:59 # −102
gost 01.01.2019 01:00 # −1
bormand 01.01.2019 01:00 # −1
gost 01.01.2019 01:01 # −1
6A9lHuCT 01.01.2019 01:02 # −102
6A9lHuCT 01.01.2019 01:08 # −102