В каком смысле отключить? зачем?
Меня бесит, что когда я сравниваю число со строкой, получается, что я сравниваю на самом деле строку с символом юникода, имеющим код со значением этого числа Интересно, какой гений догадался такое апи сварганить?
Потому т.е. то что int умеет в char вас не смутило, а qchar смутило
там по разному немного, инт в чар это просто конверсия с с потенциальной потерей значения QChar это типа имеющий отношения к строкам и ктор из инта дает юникод символ
А зачем сравнивать число со строкой? И с какой строкой ты его сравниваешь? С QString?
Вот именно, что с потерей, что легко убирается флагом компилятора. А вот неявные вызовы конструктора компилятор не убирает
Я же сказал, что по ошибке сравнил, я не хотел этого делать. Да, QString
У QString есть метод toInt.
И? Вы предлагаете мне преобразовывать строку в число, чтобы сравнить его с числом, которое я по невнимательности считал строкой?
Окей, выяснили что вопрос в вашей невнимательности. Какие вопросы к кьютовым конструкторам и операторам сравнения? :D
Нет. С невнимательностью ничего не поделать. А вот там, где можно страховку без каких-то проблем сделать, надо делать. Дело в публичном конструкторе QChar(int), который вызывается в неожиданных контестах. К оператору сравнения никаких вопросов
Как раз таки это из-за перегрузки оператора сравнения.
??? Показывай, где тут int?
вы бы всё-таки пример кода привели, чтобы мы с вами вместе повозмущались, а то нифига не понятно, что там вас так расстроило
Боже, как же всё сложно🤦♀ QString value("42"); // до рефакторинга переменная была типа int ... Много кода спустя if (value == -1){}
А надо получается QString(value).toInt() вызывать?
и чем возмущение то было? инт с интом сравнивается, что не так то? Если уж приводить фрагмент, то именно тот, который вызвал нарекания.
нет! Надо получить сообщение компилятора, что не найдена подходящая перегрузка с указанием места вызова. Ты переходишь к этому месту и меняешь -1 на QLatin1String("-1")
вы не джаваскриптер, случаем?
вот у меня именно такое подозрение закралось относительно вас, но возможно я неправильно понял вашу претензию, потому и хотел посмотреть что именно там не понравилось. Но вы вместо того, чтобы просто привести эти пару строчек кода, понаписали уже кучу всего к делу не относящегося.
Эт сарказм или не
претензия в том, что после замены int на QString по прежнему можно сравнивать QString("42") != -1 с int и компилятор молчит, поскольку это позволяет интерфейс класса
о, спасибо, а то я уже устал. Как будто троллит товарищ
Так семантически мы же числа должны сравнивать, разве нет🤔
https://t.me/qt_chat/238948
Обсуждают сегодня