🐙 Antony
От этого предложения отказались, оно ломало пользовательский код
Alexander "SonnySlave"
нет, от того, что ты предложил
ostara
Бред какой-то получается
Egor
Если все остальные по умолчанию = default, то начинает компилироваться код, который не должен компилироваться.
Egor
Кстати, для определения полного линейного порядка достаточно только < с требованиями вроде антисимметричности, транзитивности и антирефлексивности, даже == не нужен.
Egor
Тогда да. Но оно как-то тогда не очень = default получается.
Aidar
теперь будет вместо 5 операторов 6?
Aidar
ой простите
Aidar
вместо 6 7
Egor
И, вообще говоря, при выражении одного оператора через другие получается в два-три раза больше работы, чем если spaceship написать.
Timur
Меня, кстати, давно интересовал вопрос, а как мы будем на русский переводить "spaceship operator"? Это важно ;)
🐙 Antony
Там что-то стрёмное, связанное с неследованием+шаблоны. В какой-то момент начинал толи выбираться, толи компилироваться не тот оператор. Если честно - я не запомнил. Суперсомнительные примеры меня мало волновали, так как казались немного надуманными и подобный код я не встречал нигде кроме DSL. А люди, которыые пишут свой DSL на шаблонах вполне в состоянии с подобным справиться
Egor
Можно ещё "оператор туды-сюды"
Aidar
ждем короче template<operator O>
Egor
Хотя не, туды-сюды - это stringstream s; s << x >> y << z >> a;
Timur
не, ну у них космическая аналогия (типа рокета)
Egor
Только такое не компилируется =(
Egor
не, ну у них космическая аналогия (типа рокета)
Ну, в точности космической аналогией. мне кажется, незачем переводить. Хотя я не переводчик.
Egor
Летающая тарелка
Egor
<=>
Alexander "SonnySlave"
оператор ХЗ
Egor
Оператор НЛО
Aidar
template<operator O> enable_if_t<is_same_v<O, operator== > ||is_same_v<O, operator< > is_same_v<O, operator> >, bool> operator O(....);
Timur
вы же понимаете, что как договоримся сейчас так оно и пойдет?
ostara
Вариант с нло круче всего был, ребят
Timur
летит на нас
Anonymous
Верх сверху.
Timur
если это нло
ostara
Верх сверху.
а низ снизу?
Egor
Но вообще такой оператор уже есть в других языках. Ruby, скажем.
Anonymous
а низ снизу?
Ну а как же иначе?
Aidar
Но вообще такой оператор уже есть в других языках. Ruby, скажем.
а если я хочу чтобы ну допустим + - * / так же работали?
Aidar
operator+-*/(...){return a+-*/b;}
Aidar
грубо
Egor
Тут, кажется, профит только с того, что надо меньше писать, да и можно сторонней либой что-то похожее сделать.
Egor
А вот с <=> такое не получится без замедления.
Egor
Это, опять же, замедление.
ostara
Немного не дошла суть этого
Egor
Потому что + обязан создать копию объекта.
Egor
А += может переиспользовать то, что в объекте уже есть.
Aidar
я же расписал
Aidar
не понимаю смысла сравнений аля джава
Aidar
мне это кажется математически отстойно
Constantine
Почему бы не переводить "оператор сравнения"
Egor
мне это кажется математически отстойно
А без него получается либо куча копипаста, либо == начинает работать в два раза медленнее <, хотя незачем.
Constantine
Или это равенство будет... хм
🐙 Antony
operator+-*/(...){return a+-*/b;}
метаклассы смогут решить эту проблему
Aidar
метаклассы смогут решить эту проблему
уже готовлюсь к выносу мозга в с++30
Alexander "SonnySlave"
до метаклассов ещё дожить надо. кстати, хоть в одном другом ЯП есть аналогия метаклассам?
Constantine
в утиных не нужны, небось
Alexander "SonnySlave"
уже готовлюсь к выносу мозга в с++30
но зачем? если всё равно повседневно это всё использовать никто не засатвляет)
Aidar
кардинально отличающегося от пыхтона
Aidar
но зачем? если всё равно повседневно это всё использовать никто не засатвляет)
если введут оно так или иначе будет использоваться, а значит надо понимать что происходит хотябы
Alexander "SonnySlave"
если введут оно так или иначе будет использоваться, а значит надо понимать что происходит хотябы
в общих чертах - окей. Досконально - ну такое. Всё зависит от того, какого рода код требуется писать на работе)
Alexander "SonnySlave"
У них и java - интерпретируемая
да там просто мусор написан. не обращай внимания
Marko
привет как сделать невозможним ввод цифр в етом Regexe QRegExp regexp("^[A-Za-z]+((\s)?((\'|\-|\.)?([A-Za-z])+))*$");
Александр
https://habrahabr.ru/company/yandex/blog/342354/.it
integers, размер (количество байт) которых задаётся на этапе компиляции. В интерфейсе решили использовать биты наконец-то!
Alexander "SonnySlave"
поддерживаю
Александр
раньше ужасался, что будет int64_t, но wide_int<5> (если в машинных словах)
rostislav
кто что может посоветовать типа такого только на русском http://www.dataorienteddesign.com/dodmain/node1.html
Igor
вижак с недавних пор умеет открывать папки с CMakeLists, а как его научить в симейковские дефайны? например при сборке подставляется #define WIN32, но в студии #ifdef WIN32 подсвечиваются как неактивные
Aidar
функция contains(key) member для классов [unordered_]map/set/multimap/multiset. Отправили в LWG, на следующем заседании, возможно, примут в C++20.
Aidar
и всетаки хочу новое свойство итератора которое означает умеет ли он говорить что он не end
Aidar
Добавили атомарные умные указатели: а что это значит?
Igor
Добавили атомарные умные указатели: а что это значит?
я так понял, смартпоинтеры, у которых операции (разыменование, присваивание, проверка) атомарны
Aidar
присваивание и так было
Aidar
проверка не имеет смысла
Aidar
разыменование тоже
Кирилл
присваивание и так было
http://www.modernescpp.com/index.php/atomic-smart-pointers
Aidar
http://www.modernescpp.com/index.php/atomic-smart-pointers
The update of the std::shared_ptr ptr (1) is thread-safe. All is well? NO.
Aidar
И что это значит?
Кирилл
И что это значит?
http://en.cppreference.com/w/cpp/memory/shared_ptr If multiple threads of execution access the same shared_ptr without synchronization and any of those accesses uses a non-const member function of shared_ptr then a data race will occur Например, вызов двух операторов присваивания над одним shared_ptr в двух разных потоках приведёт к гонке.