
Anton
05.09.2018
16:35:09
enum {yellow, black} kek;
const char* str = typeid(kek).name();
Вот так выведет "._85"

Ilia
05.09.2018
16:35:12
Вот typeid как -то к int не понятно как применимо...

Anton
05.09.2018
16:35:51
Если enum именованный - выводит имя enum'a
Почему не int тогда?

Google

Aidar
05.09.2018
16:36:48
Потомучто я наврал

Constantine
05.09.2018
16:50:17
Хм... а можно как-то обойти проблему, что для рекурсивного вызова в лямбде в духе примера ниже нужно указать дважды сигнатуру функции?
std::function<void()> recursive = [&] () -> void {
if (true) return;
return recursive();
};

Nikita
05.09.2018
16:54:15
auto recursive?

Constantine
05.09.2018
16:55:18

Nikita
05.09.2018
16:55:21
Не сработает)

Constantine
05.09.2018
16:56:11
для deduction guides, как я понимаю, то же самое правило, что нельзя использовать имя до окончания инициализатора

Nikita
05.09.2018
16:57:04
А то что там return recursive это принципиально?

Constantine
05.09.2018
16:57:18
ну это синтаксис для рекурсивных лямбд
для нерекурсивных понятно, что никаких проблем нет

Nikita
05.09.2018
16:57:54

Constantine
05.09.2018
16:58:08
Это же не первая ветка возврата в лямбда-выражении

Nikita
05.09.2018
16:58:24
Тогда просто убрать return если тут void

Google

Nikita
05.09.2018
16:58:43
Но это только для void катит

Anton
05.09.2018
16:58:44
Вообще если лямбда раскрывается в функтор, почему нельзя как нибудь использовать this?)

Constantine
05.09.2018
16:59:03

Anton
05.09.2018
16:59:26
Ну, другое ключевое слово придумать

Constantine
05.09.2018
17:00:18
Я не уверен, но мне кажется, что там this будет на incomplete type

Nikita
05.09.2018
17:00:23
std::function<int()> recursive = [&]() {
if (true) {
return 3;
}
auto b = recursive();
return b;
};
не очень элегантно

Constantine
05.09.2018
17:00:47

Nikita
05.09.2018
17:01:07
ну как бы тип в любом случае надо где-то указать

Constantine
05.09.2018
17:01:50
выглядит лишнего

Nikita
05.09.2018
17:02:03
Почему?
Один раз указываем

Constantine
05.09.2018
17:02:13
потому что я могу получить себя в качестве параметра

Nikita
05.09.2018
17:02:14
Иначе как понять какой тип?

Constantine
05.09.2018
17:02:23
тип понятен же

Nikita
05.09.2018
17:02:45
Это в вашем примере, а не в общем

Constantine
05.09.2018
17:02:53
да и в общем тоже

Nikita
05.09.2018
17:03:18
std::function<void()> recursive = [&] () {
if (true) return 3;
else return “3”:
return recursive();
};
Допустим у нас нету указания void()
Понятно что код некорректный

Google

Nikita
05.09.2018
17:05:20
Но вот в случае когда типы приводимы тоже непонятно

Constantine
05.09.2018
17:05:23

Олег
05.09.2018
17:05:35
Вы ещё придумайте, как в этом примере убрать виртколл, что внутри std::function живёт.

Nikita
05.09.2018
17:06:28

Constantine
05.09.2018
17:07:14

Nikita
05.09.2018
17:08:36
Потому что тип возвращаемого значения может зависеть от self

Constantine
05.09.2018
17:09:23
auto gcd(int x, int y) {
if (y == 0)
return x;
return gcd(y, x % y);
}

Aidar
05.09.2018
17:29:04
Не только исполнения
auto rec=[&] {return rec;};
И типа чо делатт
Лучше когда такое запрещено имхо

Antony
05.09.2018
19:17:03
Кстати, а естьу кого-нить книга Hacker's Delight book в электронном виде?

Alexander
05.09.2018
19:24:22

Ilia
05.09.2018
19:24:49
Боокз! Боокз!
Тэг ставь!

Google

Ilia
05.09.2018
19:25:29

Constantine
05.09.2018
21:01:09
И типа чо делатт
Ну это же то же самое, что попытаться еще не вычисленное что-то из auto вернуть

Aidar
05.09.2018
21:01:49

Constantine
05.09.2018
21:02:10

Павел
05.09.2018
21:48:08
Привет ребять, это не реклама (проект OpenSource), те кто хочет разобраться с libevent, или сокетами могут затестить и проанализировать код вот этого проекта: https://github.com/CoZZmOnAvT/42chat , буду очень благодарен, если проследуете инструкции в описании проекта и присоеденитесь к беседе внутри даного приложения :)

Alexander
05.09.2018
21:50:00

Павел
05.09.2018
21:51:48
Всё очень просто, sockets механизм разработаный linus'ом Torvalds'oм изначально для C, плюс C++ не даёт должной производительности из-за высокого уровня абстракции, что насчёт rust'a - в раздумиях про написания аналога на этом языке

Alexander
05.09.2018
21:52:37

Ruslan
05.09.2018
21:53:54
Это какие-то страшилки из 90-х

Павел
05.09.2018
21:54:32
Это вовсе не чушь, к чему этот сарказм?

Vladislav
05.09.2018
21:54:46

Ruslan
05.09.2018
21:54:54
Голословные заявления - чушь

Павел
05.09.2018
21:55:00
Это же вполне не сложная логика - чем выше уровень абстракции, тем ниже производительность
Хорошо, аргументируй, сударь

Ruslan
05.09.2018
21:55:21
А давай ты приведешь, поскольку заявления твои

Alexander
05.09.2018
21:55:25

Ruslan
05.09.2018
21:55:30
Я видел дизасм плюсокода

Alexander
05.09.2018
21:55:32

Ruslan
05.09.2018
21:55:40
И могу сказать, что он бывает охеренно эффективный

Google

Павел
05.09.2018
21:55:52

Ioann V
05.09.2018
21:55:54
Хорошо, аргументируй, сударь
Тише. Я против разборок. Я не считаю нужным этому человеку оправдываться. Саня его попросил аргументировать он так и сделал. Остальное за кулисы плис.

Ruslan
05.09.2018
21:56:08
Не веришь мне - посмотри на канале Jason Turner его видео