Как отключить конструктор QChar(int)?

27 ответов

26 просмотров

В каком смысле отключить? зачем?

vile- Автор вопроса
Vasiliy Sorokin
В каком смысле отключить? зачем?

Меня бесит, что когда я сравниваю число со строкой, получается, что я сравниваю на самом деле строку с символом юникода, имеющим код со значением этого числа Интересно, какой гений догадался такое апи сварганить?

vile
Меня бесит, что когда я сравниваю число со строкой...

Потому т.е. то что int умеет в char вас не смутило, а qchar смутило

Michael Chambers
Потому т.е. то что int умеет в char вас не смутило...

там по разному немного, инт в чар это просто конверсия с с потенциальной потерей значения QChar это типа имеющий отношения к строкам и ктор из инта дает юникод символ

vile
Меня бесит, что когда я сравниваю число со строкой...

А зачем сравнивать число со строкой? И с какой строкой ты его сравниваешь? С QString?

vile- Автор вопроса
Vasiliy Sorokin
там по разному немного, инт в чар это просто конве...

Вот именно, что с потерей, что легко убирается флагом компилятора. А вот неявные вызовы конструктора компилятор не убирает

vile- Автор вопроса
TheDoctor
А зачем сравнивать число со строкой? И с какой стр...

Я же сказал, что по ошибке сравнил, я не хотел этого делать. Да, QString

vile- Автор вопроса
TheDoctor
У QString есть метод toInt.

И? Вы предлагаете мне преобразовывать строку в число, чтобы сравнить его с числом, которое я по невнимательности считал строкой?

vile
И? Вы предлагаете мне преобразовывать строку в чис...

Окей, выяснили что вопрос в вашей невнимательности. Какие вопросы к кьютовым конструкторам и операторам сравнения? :D

vile- Автор вопроса
TheDoctor
Окей, выяснили что вопрос в вашей невнимательности...

Нет. С невнимательностью ничего не поделать. А вот там, где можно страховку без каких-то проблем сделать, надо делать. Дело в публичном конструкторе QChar(int), который вызывается в неожиданных контестах. К оператору сравнения никаких вопросов

vile
Нет. С невнимательностью ничего не поделать. А вот...

Как раз таки это из-за перегрузки оператора сравнения.

vile- Автор вопроса
vile
Нет. С невнимательностью ничего не поделать. А вот...

вы бы всё-таки пример кода привели, чтобы мы с вами вместе повозмущались, а то нифига не понятно, что там вас так расстроило

vile- Автор вопроса
Sergey eSKon
вы бы всё-таки пример кода привели, чтобы мы с вам...

Боже, как же всё сложно🤦‍♀ QString value("42"); // до рефакторинга переменная была типа int ... Много кода спустя if (value == -1){}

vile
Боже, как же всё сложно🤦‍♀ QString value("42"); /...

А надо получается QString(value).toInt() вызывать?

vile
Боже, как же всё сложно🤦‍♀ QString value("42"); /...

и чем возмущение то было? инт с интом сравнивается, что не так то? Если уж приводить фрагмент, то именно тот, который вызвал нарекания.

vile- Автор вопроса
Schrödinger's cat
А надо получается QString(value).toInt() вызывать?

нет! Надо получить сообщение компилятора, что не найдена подходящая перегрузка с указанием места вызова. Ты переходишь к этому месту и меняешь -1 на QLatin1String("-1")

vile- Автор вопроса
vile
вы не джаваскриптер, случаем?

вот у меня именно такое подозрение закралось относительно вас, но возможно я неправильно понял вашу претензию, потому и хотел посмотреть что именно там не понравилось. Но вы вместо того, чтобы просто привести эти пару строчек кода, понаписали уже кучу всего к делу не относящегося.

Sergey eSKon
вот у меня именно такое подозрение закралось относ...

претензия в том, что после замены int на QString по прежнему можно сравнивать QString("42") != -1 с int и компилятор молчит, поскольку это позволяет интерфейс класса

vile- Автор вопроса
vile- Автор вопроса
Anatoly Shirokov
претензия в том, что после замены int на QString п...

о, спасибо, а то я уже устал. Как будто троллит товарищ

vile
нет

Так семантически мы же числа должны сравнивать, разве нет🤔

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта