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

27 ответов

22 просмотра

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

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
нет

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

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

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

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
2
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Доброе утро, мультиязычные сайты делал кто-нибудь? Какие подводные камни? Нужно чего нибудь допом ставить? Как поступить? В теории сделать две папки ru en и туда кидать страни...
Racoon Mitya
2
Карта сайта