Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562

Запретить неявное приведение возвращаемого значения

07.01.2015, 07:08. Показов 5219. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть функция, возвращающая объект класса, имеющего оператор приведения к uint64_t. Требуется запретить неявное приведение возвращаемого значения ко всем типам, кроме uint64_t. Понятно, что после присваивания другой переменной типа uint64_t будут действовать все правила приведения, относящиеся к uint64_t, но
C++
1
2
3
4
uint64_t x;
double y;
x=f(2, 4);
y=x;
и должно быть валидно, не валидными надо сделать
C++
1
2
double x;
x=f(2, 4);
,
C++
1
2
3
... foo(double x);
...
foo(f(2,4));
и тому подобное неявное приведение непосредственно возвращаемого значения без промежуточного присваивания. Явное приведение не трогаем.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.01.2015, 07:08
Ответы с готовыми решениями:

Запретить неявное приведение
Нужна функция с двумя формальными параметрами типа uint64_t, требуется запретить неявное приведение фактических параметров к этому типу,...

Неявное приведение типов
Объясните пожалуйста на пальцах, а то всё уже обгуглил. Где говорят - зависит от компилятора или архитектуры, где правила какие-то -...

Неявное приведение указателей на классы
Всем привет! Обнаружилась вот такая нестыковочка: имеем интерфейсный класс IIn. И имеем класс-наследник ExtIn : public IIn далее...

46
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
10.01.2015, 19:12  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Enno Посмотреть сообщение
union data{ uint64_t data1; char data2; USHORT data3;
1. У них разный размер.
2. Прописывать каждый тип - это громоздко и можно какой нибудь пропустить, или забыть убрать.

Добавлено через 1 минуту
[quote="Enno;7089583"]Итого - как обманывая компилятор, заставить выполнить его работу./quote]В чём обман?
Цитата Сообщение от Enno Посмотреть сообщение
А никак, это противоположные требования.
В чём противоречие?
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
10.01.2015, 19:29
Цитата Сообщение от taras atavin Посмотреть сообщение
1. У них разный размер.
И чё? Указывают на один кусок данных.
Цитата Сообщение от taras atavin Посмотреть сообщение
2. Прописывать каждый тип - это громоздко и можно какой нибудь пропустить, или забыть убрать.
Вон я те шаблон кинул, не прописывай.
Цитата Сообщение от taras atavin Посмотреть сообщение
В чём обман?
В том что сначала уходишь от типа, а потом пытаешься применить его правила. Попробуй ещё оператор получения адреса переопределить и возвращать нужный тип (не приводимый к ненужным типам, с сохранением семантики указателя).
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
10.01.2015, 19:31  [ТС]
Цитата Сообщение от Enno Посмотреть сообщение
В том что сначала уходишь от типа, а потом пытаешься применить его правила.
Где я чьи правила пытаюсь применить?

Добавлено через 18 секунд
Цитата Сообщение от Enno Посмотреть сообщение
Вон я те шаблон кинул, не прописывай.
Шаблон юньона? Это гдеж такое?
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
10.01.2015, 19:33
Цитата Сообщение от taras atavin Посмотреть сообщение
Шаблон юньона? Это гдеж такое?
Шаблон оператора.
Цитата Сообщение от taras atavin Посмотреть сообщение
Где я чьи правила пытаюсь применить?
Правила применяемые к типу пытаешься перенести на тип указателя на тип.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
10.01.2015, 19:35  [ТС]
Цитата Сообщение от Enno Посмотреть сообщение
Правила применяемые к типу пытаешься перенести на тип указателя на тип.
Энто где?

Добавлено через 31 секунду
Цитата Сообщение от Enno Посмотреть сообщение
Шаблон оператора.
Это который заделичен?
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
11.01.2015, 07:49
Цитата Сообщение от taras atavin Посмотреть сообщение
Это который заделичен?
Который ты сам написал.
Цитата Сообщение от taras atavin Посмотреть сообщение
Энто где?
Нигде, я заметил что ошибся. В любом случае просмотри тот список с моими комментами ещё раз и там где ты указатели приводишь к указателям, а потом разыменовываешь - считай они стопудово будут валидными.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
14.01.2015, 06:12  [ТС]
Ну это как раз понятно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2015, 06:12

Как запретить компилятору неявное преобразование из числового типа в символьный?
У мя возникла такая проблема: я ввожу данные типа char и мне надо быть уверенным, что я ввел именно символ, т.е. если я ввожу число мне...

Тип возвращаемого значения
Доброе время суток! Возникла необходимость написать программу на С++. Но я в языке ,если честно,не сильна. Использовала функции в...

Тип возвращаемого значения
Здравствуйте! Подскажите, пожалуйста, почему при нахождении арифметического выражения, функция main должна возвращать значение типа int,...

Ошибка возвращаемого значения
При компиляции и выполнении возвращается значение "3221225477" и ругается Windows что прекращена работа программы. Подскажите где ошибка? ...

Тип возвращаемого значения
Здравствуйте, вопрос может тупой, но почему в данном конкретном случае функция convert всегда возвращает целое значение, без знаков после...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
47
Ответ Создать тему
Новые блоги и статьи
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru