Ivan
@berkus http://ideone.com/kWWVEJ
Berkus
ы, круто
Ivan
Хехехе)
Berkus
всего пара лишних скобочек
Stanislav
https://stackoverflow.com/a/29422537/1274305
Ivan
ага, я просто с тернарником упарывался) случайно получилось
Олександр
bool gender == bool HasPenis
Ioann_
Станислав Ершов
Ioann_
Случаем не на VK cup :?
Ioann_
Ioann_
Ну значит, просто тезки.
Vladislav
А ссылка-то битая, лол
Vladislav
Неужели телега наконец стала блочить каналы за спам?
🐙 Antony
Похоже скоро подоспеют новые весёлые задачки для С++ собеседований! Что здесь написано и где ошибка: int a; const int b = 0; struct S { int x : 5 = 42; int y1 : true ? 1 : a = 42; int y2 : true ? 1 : b = 42; int z : 1 || new int { 42 }; };
Nikita
bool gender == bool HasPenis
Ждём протесты трансниггеров с множественной личностью
Andrey
Vladislav
когда банят, можно помечать report spam
Раньше это не работало, неделями одни и те же спамеры приходили
Berkus
в любом случае за первый репорт не будут блочить, оно ж кумулятивное
🐙 Antony
еще и попытка записи в константу b при инцициализации y2
Да, это единственная ошибка! Остальное должно скомпилироваться
🐙 Antony
int a; const int b = 0; struct S { int x : 5 = 42; // ok; "= 42" is brace-or-equal-initializer int y1 : true ? 1 : a = 42; // ok; brace-or-equal-initializer is absent int y2 : true ? 1 : b = 42; // error: cannot assign to const int int z : 1 || new int { 42 }; // ok; brace-or-equal-initializer is absent };
Berkus
prog.cc: In function 'int main()': prog.cc:10:17: error: lvalue required as left operand of assignment int x : 5 = 42; ^~ prog.cc:12:29: error: assignment of read-only variable 'b' int y2 : true ? 1 : b = 42; ^~
Berkus
а гцц с тобой не согласно, Антон
Berkus
:)
🐙 Antony
так GCC еще и не поддерживает C++20
Александр
😏
🐙 Antony
Ну и в ближайшую субботу общим голосованием ещё могут забраковать эту фичу для С++20
Berkus
так GCC еще и не поддерживает C++20
давай попробуем компилятор который поддерживает prog.cc:10:15: error: bit-field member cannot have an in-class initializer int x : 5 = 42; ^ prog.cc:11:25: error: reference to local variable 'a' declared in enclosing function 'main' int y1 : true ? 1 : a = 42; ^ prog.cc:7:9: note: 'a' declared here int a; ^ prog.cc:12:27: error: cannot assign to variable 'b' with const-qualified type 'const int' int y2 : true ? 1 : b = 42; ~ ^ prog.cc:8:13: note: variable 'b' declared const here const int b = 0; ~~~~~~~~~~^~~~~ prog.cc:12:25: error: reference to local variable 'b' declared in enclosing function 'main' int y2 : true ? 1 : b = 42; ^ prog.cc:8:13: note: 'b' declared here const int b = 0; ^ 4 errors generated.
Berkus
так а расскажи, давно можно в битфилды записать значение которое больше того, которое туда в принципе может влезть? или это собираются в с++20 добавить для пущего удобства в отлавливании багов?
Ivan
Не я один люблю упарываться))))
Berkus
что не есть "ok"
Александр
Я думал речь идёт о фиче инициализации битовых полей по умолчанию
Alim
Когда я начну понимать все эти понятия...? 🤔
Dmitriy
И заставить размер считать. И смеяться и смеяться
🐙 Antony
А почему нет? Обрежется по маске и вот весело то будет )
Похоже что правила будут такие же, как и при других инициализациях. struct S { unsigned n : 2 = 42; // warning unsigned q : 2 { 42 }; // error: narrowing conversion unsigned p : 2 = { 42 }; // error: narrowing conversion };
Konstantin
А может кто объяснить, как может так сложиться жизнь что это понадобится? Сделать офигенное выравнивание?
Anatoly
это дает чувство превосходства над окружающими :)
Dmitriy
А может кто объяснить, как может так сложиться жизнь что это понадобится? Сделать офигенное выравнивание?
Порасслаблялись со своими гигабайтами ОЗУ... У некоторых тут килобайтами доступная ОЗУ исчисляется )
Anatoly
я вот думаю, толку с того, что это задание кому-то дать на собеседовании
Anatoly
Порасслаблялись со своими гигабайтами ОЗУ... У некоторых тут килобайтами доступная ОЗУ исчисляется )
кстати, оптимизационные задачи в условиях ограничений действительно доставляют удовольствие
Konstantin
я вот думаю, толку с того, что это задание кому-то дать на собеседовании
А задания про тонну наследования с одинаковыми полями и названиями классов А, В, С... ок?) Кажется, пора привыкнуть к подобным заданиям
Constantine
Ну и в ближайшую субботу общим голосованием ещё могут забраковать эту фичу для С++20
А что-нибудь полезное делать не пробовали? Поддержку compile time printf через суффиксный оператор, или хотя бы forward declaration для nested классов? :)))))
Constantine
Anatoly
А задания про тонну наследования с одинаковыми полями и названиями классов А, В, С... ок?) Кажется, пора привыкнуть к подобным заданиям
видимо, подобное имеет смысл спрашивать у соискателей в команду разработки компилятора и то
Constantine
На должность компилятора gcc требуется человек в закрытое НИИ. Условия работы: коробка 2*2*2 с надписью "сервер"?
Anatoly
:)
Constantine
Зато внесен в реестр отечественных сотрудников!
Vladislav
Зато?
Dmitriy
Соискателей на вакансию "человек-компилятор"
по совместительству еще "статический анализатор". Приносишь такому рулон обоев, с распечаттанным исходником, он пробегается глазами и сразу говорит, что у тебя тут утечка, тут типы не сходятся, а вот тут, милок, вообще знак потерял.
Constantine
Зато?
Ну да, реестр отечественных сотрудников - важный этап жизни для каждого сознательного гражданина
Constantine
Это я тебе как человек, который 11 лет прожил за колючей проволокой говорю :)
🐙 Antony
А что-нибудь полезное делать не пробовали? Поддержку compile time printf через суффиксный оператор, или хотя бы forward declaration для nested классов? :)))))
Полезное скучно и уже все о нём знают :) В понедельник решали замечания по корутинам, сети и рейнджам
mefest
Чтоб был
а че тогда сразу туда операционку не добавить?
mefest
чтоб была
Nikita
Я к этому и веду)
Konstantin
Чтоб был
В петоне же есть))
🐙 Antony
http-сервер и поддержку COM в stl запихнуть планируют?
Да, но сначала обкатать надо в Boost
Крылатый
<_<
Крылатый
Пропозал монад в C++