Aidar
вакансии с фрилансами мешать?
Stanislav
но 95% не читают правила
Aidar
вакансии с фрилансами мешать?
ну на самом деле пофигу
Stanislav
вакансии с фрилансами мешать?
а чо нет, С++ это не жс, нет смысл делить
Vladislav
https://godbolt.org/g/6yUVzF
Square
нужен программист с++
А на если я пишу на Паскале?
Anonymous
А на если я пишу на Паскале?
просто сорцы уже на с++ написаны и нужно доработать их
Square
просто сорцы уже на с++ написаны и нужно доработать их
Сформулируйте требование и напишите в лс овнеру. Или админам. Или кому нибудь ещё. Я афк
Vitaliy ◀️TriΔng3l▶️
https://godbolt.org/g/6yUVzF
Что это, почему получилось так много, и что это за странная строка со скобками? 😱
Ivan
https://godbolt.org/g/6yUVzF
Что за нах?
Vladislav
я знал что вам понравится)
Ivan
http://cpp.sh/2zby6 оно печатает 42
Ivan
я знал что вам понравится)
Ах ты ж упоротый. Объясни теперь.
Vladislav
https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html
Vladislav
и сlang их тоже поддерживает, но доков я не нашел
Ivan
Это не стандарт? Можно выдохнуть)
Stanislav
и сlang их тоже поддерживает, но доков я не нашел
да шланг ваще, прикидыается то гцц то мсвц
Vladislav
Это не стандарт? Можно выдохнуть)
нет, но включено по-дефолту, в отличие от более злых экстеншонов
Vladislav
У - Дегенераты
не, ну фича-то полезная
Vitaliy ◀️TriΔng3l▶️
https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html
Ух ты 😍😍😍 Но блин, можно ведь и форсинлайн написать
Vladislav
теперь когда растовики будут ею хвастаться, можно смело говорить что в плюсах тоже есть
Nikita
не, ну фича-то полезная
[](){ body; return result; }()
Vladislav
[](){ body; return result; }()
^{body; return result;}()
Vladislav
но для этого уже надо включить -fblocks
Vitaliy ◀️TriΔng3l▶️
Generic min/max с однократным раскрытием аргументов всё равно не сделать на C(((
Vladislav
^{body; return result;}()
больше наркоманчких расширений богу наркоманских расширений!
Vitaliy ◀️TriΔng3l▶️
Разве что если явно тип передавать только, но это некрасиво
Nikita
но для этого уже надо включить -fblocks
ну а с лямбдой никаких хаков кроме включенного 11го стандарта и не надо
Stanislav
ну привет, все довольны и радуются от гсс екстеншенов но никто msvc екстеншены
Stanislav
что за дискриминация
Vladislav
больше наркоманчких расширений богу наркоманских расширений!
чому? #define min(x, y) ({int _x = (x), _y = (y); _x < _y ? _x : _y; })
Nikita
ну привет, все довольны и радуются от гсс екстеншенов но никто msvc екстеншены
я вот не радуюсь, это заменяется лямбдой и её вызовом на месте, притом убивает портируемость
Nikita
Слишком много писать
слишком много материться
Stanislav
Vladislav
охуительный способ отстрелить себе ногу https://godbolt.org/g/oLSeJj
Vladislav
вот отсюда http://blog.robertelder.org/switch-statements-statement-expressions/
Stanislav
охуительный способ отстрелить себе ногу https://godbolt.org/g/oLSeJj
о боже, ты там вообще код пишешь или компилеры на бги проверяешь? )
Stanislav
это ж как надо упороться чтоб такое написать f(i + ({case 0:; 1;}) + i);
Vladislav
о боже, ты там вообще код пишешь или компилеры на бги проверяешь? )
не, этот баг уже пофиксили - вот в 3.8 компилятор сегфолтился
Vladislav
https://godbolt.org/g/5Cm9s5
Stanislav
https://godbolt.org/g/5Cm9s5
только щас обратил внимания что там не тлько С++, а как другой язык включить? )
Vladislav
не я же, ну - из статьи пример)
Vladislav
а в прошлый раз я не специально - честно) оно само сломалось
Stanislav
ну вот так всегда
Aladin
привет всем. нужен кто-то кто сможет помочь с одним вопросом. есть одна программа на которой я работаю. нужно поменять interface только. а принцип роботы так и оставить. могу предоставить new interface как он должен выглядеть. я надеюсь что кто-то понял о чем я говорю. если есть кто-то, пишите в ЛС. все объясню. спс. and have a good day.
ed
Лол, мы надеемся ты сам понял о чём сказал
PRoSToC0der
у кого-нибудь есть идеи почему operator= и emplace у std::variant не constexpr?
blow
Alexander "SonnySlave"
PRoSToC0der
мб они могут бросить исключение?
std::get для std::variant тоже может бросить исключение, но он constexpr
Vladislav
хм, а как оператор присваивания может быть constexpr?
PRoSToC0der
хм, а как оператор присваивания может быть constexpr?
у string_view как-то может... и modifiers remove_(prefix|suffix) там constexpr
PRoSToC0der
просто пытаюсь сделать constexpr конечный автомат на std::variant и споткнулся об это
Nikita
хм, а как оператор присваивания может быть constexpr?
Так с C++14 с расширенными constexpr теперь может
Alexander "SonnySlave"
constexpr может быть даже небо, даже аллах
ed
Аллах только constexpr и может..
ed
Так этож они сами так говорят.. никаких оскорблений
Maksim
Добрый день. Подскажите, пожалуйста, почему, например, Qt не использует в своих интерфейсах fixed width integer types (http://en.cppreference.com/w/cpp/types/integer)? То есть, например, конструктор QRect (http://doc.qt.io/qt-5/qrect.html) у них принимает 4 int значения, и хранит их в виде четырёх int, а при сериализации внутри кастует в зависимости от версии либо к qint16, либо к qint32 (https://github.com/qt/qt/blob/0a2f2382541424726168804be2c90b91381608c6/src/corelib/tools/qrect.cpp#L1278). Этому вообще есть какие-нибудь причины? Что-то историческое? Стоит ли вообще использовать fixed width integer types по возможности где только можно? У нас в проекте много чего сериализуется, мы дорожим обратной совместимостью и не хотим ломать формат.
Maksim
Можно пример?
Maksim
Кстати, всё-таки кое-где использует http://doc.qt.io/qt-5/qaudioformat.html. Но не везде. Только в новых функциях, чтобы не ломать интерфейс, видимо. Например, в 4.8 ещё нет http://doc.qt.io/archives/qt-4.8/qaudioformat.html
Maksim
Но, я так понимаю, предпочтительно использовать, так?
Alexander
если что Qt старается сохранять бинарную совместимость, т.е. любой бинарник скомпилированный под 5.0 должен работать с любыми либами 5.* версии
Oleg
Нет
Oleg
Там даже миноры ломают все
Oleg
И тебе при запуске выдает бла-бла-бла либ версион мисматч
Alexander
ну, я не знаю насколько это хорошо выходит 😊 Но размеры обьектов они принципиально не меняют например
Alexey
И тебе при запуске выдает бла-бла-бла либ версион мисматч
это когда ты в одно приложение запускаешь с разными версиями либ же
Nikita
Там даже миноры ломают все
Эмм, миноры на то и миноры, по определению, что не ломают обратную совместимость
Nikita
Работает ли SFINAE для deduction guides? Если у меня есть такие вот правила: template<typename Arg> MyClass(Arg&&) -> ... template<typename Arg> MyClass(Arg&&) -> ...Если то, что написано справа от стрелки в одном случае будет корректным, а во втором - нет (или наоборот), то будут ли такие правила вывода корректными? Например: template<typename Arg> MyClass(Arg&&) -> MyClass<enable_if_t<is_integral<Arg>::value, int>; template<typename Arg> MyClass(Arg&&) -> MyClass<enable_if_t<!is_integral<Arg>::value, double>;
Matwey
А как на самом деле - я не знаю
Nikita
ну вот у меня на gcc и clang тоже работает
Nikita
но msvc ругается
Nikita
two deduction guide declarations for the same class template cannot have equivalent parameter list