🐙 Antony
От этого предложения отказались, оно ломало пользовательский код
Alexander "SonnySlave"
нет, от того, что ты предложил
ostara
Бред какой-то получается
Alexander "SonnySlave"
Egor
Если все остальные по умолчанию = default, то начинает компилироваться код, который не должен компилироваться.
Egor
Кстати, для определения полного линейного порядка достаточно только < с требованиями вроде антисимметричности, транзитивности и антирефлексивности, даже == не нужен.
Egor
Тогда да. Но оно как-то тогда не очень = default получается.
Aidar
теперь будет вместо 5 операторов 6?
Aidar
ой простите
Aidar
вместо 6 7
Egor
И, вообще говоря, при выражении одного оператора через другие получается в два-три раза больше работы, чем если spaceship написать.
Timur
Меня, кстати, давно интересовал вопрос, а как мы будем на русский переводить "spaceship operator"? Это важно ;)
🐙 Antony
Там что-то стрёмное, связанное с неследованием+шаблоны. В какой-то момент начинал толи выбираться, толи компилироваться не тот оператор.
Если честно - я не запомнил. Суперсомнительные примеры меня мало волновали, так как казались немного надуманными и подобный код я не встречал нигде кроме DSL. А люди, которыые пишут свой DSL на шаблонах вполне в состоянии с подобным справиться
Egor
Egor
Можно ещё "оператор туды-сюды"
Aidar
ждем короче template<operator O>
Egor
Хотя не, туды-сюды - это stringstream s; s << x >> y << z >> a;
Timur
не, ну у них космическая аналогия (типа рокета)
Egor
Только такое не компилируется =(
Egor
Летающая тарелка
Egor
<=>
Alexander "SonnySlave"
оператор ХЗ
Egor
Оператор НЛО
Max
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
если это нло
Egor
Но вообще такой оператор уже есть в других языках. Ruby, скажем.
Aidar
Egor
Aidar
operator+-*/(...){return a+-*/b;}
Aidar
грубо
Egor
Тут, кажется, профит только с того, что надо меньше писать, да и можно сторонней либой что-то похожее сделать.
Egor
А вот с <=> такое не получится без замедления.
Egor
Это, опять же, замедление.
ostara
Немного не дошла суть этого
Egor
Потому что + обязан создать копию объекта.
Egor
А += может переиспользовать то, что в объекте уже есть.
Aidar
я же расписал
Aidar
не понимаю смысла сравнений аля джава
Aidar
мне это кажется математически отстойно
Constantine
Почему бы не переводить "оператор сравнения"
Constantine
Или это равенство будет... хм
Aidar
Alexander "SonnySlave"
до метаклассов ещё дожить надо.
кстати, хоть в одном другом ЯП есть аналогия метаклассам?
Constantine
в утиных не нужны, небось
Aidar
Aidar
кардинально отличающегося от пыхтона
Vladislav
Marko
привет как сделать невозможним ввод цифр в етом Regexe QRegExp regexp("^[A-Za-z]+((\s)?((\'|\-|\.)?([A-Za-z])+))*$");
Alexander "SonnySlave"
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
Добавили атомарные умные указатели:
а что это значит?
Aidar
присваивание и так было
Aidar
проверка не имеет смысла
Aidar
разыменование тоже
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 в двух разных потоках приведёт к гонке.