Size: a a a

2020 April 24

A

Alex in pro.cxx
Iskander Saitbatalov
По значению, ибо эта структура умещается в два машинных слова. Все структур меньше или равных трех лучше передавать по значению
Понял, уже увидел выше, спасибо!
источник

A

Alex in pro.cxx
vehlwn
У стринг вьюхи нет операторов сравнений?
мой класс сравниваю со string_view
источник

DC

Denis Chernikov in pro.cxx
Alex
смысл в том, чтобы не создавать лишних временных объектов и физических копий данных, как я понимаю, по крайней мере. Не понимаю, зачем простому агрегату запрещать мув.
Без оптимизаций они всё равно будут, мув конструктор от этого не спасёт
источник

v

vehlwn in pro.cxx
Alex
мой класс сравниваю со string_view
Конвертируй твой класс в стринг вью и сравнивай.
источник

A

Alex in pro.cxx
та не, такой вариант мне меньше нравится. У меня уже был оператор сравнения с std::string, просто переделаю его на view.
источник

v

vehlwn in pro.cxx
Alex
та не, такой вариант мне меньше нравится. У меня уже был оператор сравнения с std::string, просто переделаю его на view.
Что мешает вручную вызвать lexicographical_compare? У тебя же есть бегины и енды.
источник

АК

Александр Караев in pro.cxx
Alex
А почему так, насколько это важно?
Довольно странно передавать не по ссылке то, что не примтивный тип и что не имеет мув конструктора, по-моему
Странно передавать по ссылке то, что занимает 2*sizeof(void*)
источник

A

Alex in pro.cxx
Александр Караев
Странно передавать по ссылке то, что занимает 2*sizeof(void*)
понял, согласен, спасибо за пояснение
источник

v

vehlwn in pro.cxx
Alex
мой класс сравниваю со string_view
namespace ns{
class YourClass{};
bool operator==(const YourClass& rhs, const std::string_view lhs){
 return std::lexicographical_compare...
}
}

?
источник

A

Alex in pro.cxx
а в чём смысл по сравнению с оператором-членом класса? Ну и у меня уже есть оттестированная реализация через memcmp c корректной обработкой пустых строк
источник

v

vehlwn in pro.cxx
Alex
а в чём смысл по сравнению с оператором-членом класса? Ну и у меня уже есть оттестированная реализация через memcmp c корректной обработкой пустых строк
В количестве явных параметров. Это точно вопрос уровня про?
источник

A

Alex in pro.cxx
Точно. Какая разница, this явный или нет?
источник

v

vehlwn in pro.cxx
Alex
а в чём смысл по сравнению с оператором-членом класса? Ну и у меня уже есть оттестированная реализация через memcmp c корректной обработкой пустых строк
В операторе члене ты никогда не сделаешь YourClsas вторым параметром.
источник

A

Alex in pro.cxx
в свободной функции тоже, их таких нужно две
источник

v

vehlwn in pro.cxx
Alex
в свободной функции тоже, их таких нужно две
Ну и что? std::complex никто не мешает делать декартово произведение перегрузок операторов с всеми перестановками complex и value_type.
источник

A

Alex in pro.cxx
впервые слышу о таком механизме, если объявлена f(int, float), её нельзя вызвать как f(float, int), и операторы - не исключение. Разве нет?
источник

A

Alex in pro.cxx
обычно пишется оператор сравнения - член класса, и обратная версия-обёртка в виде свободной функции
источник

CD

Constantine Drozdov in pro.cxx
Alex
А почему так, насколько это важно?
Довольно странно передавать не по ссылке то, что не примтивный тип и что не имеет мув конструктора, по-моему
Зачем ему мув конструктор, который точная копия копи конструктора?
источник

CD

Constantine Drozdov in pro.cxx
Alex
обычно пишется оператор сравнения - член класса, и обратная версия-обёртка в виде свободной функции
у вас неверные сведения
источник

CD

Constantine Drozdov in pro.cxx
в идеале оба они должны быть написаны внешней функцией
источник