Ответы пользователя по тегу Типы данных
  • Диапазон типов данных C++?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Хочу порекомендовать тебе материал от разработчиков PVS-Studio относительно моделей данных в C++. Там хорошо и коротко объясняется суть твоего вопроса.
    Так же тебе будет полезно изучить документацию C++, где можно изучить подробности.

    Модель данных выбирается при трансляции и не может быть изменена в уже собранном бинарном коде. Абсолютно весь бинарный код опирается на значения модели данных буквально в каждый момент времени исполнения. Изменение модели данных бинарного кода потребует детального анализа как исполняемого кода, так и всех структур памяти, которыми бинарный код оперирует. Это будет эквивалентно повторной трансляции исходного кода в бинарный с иной моделью данных.

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

    Поэтому, в общем смысле на твой вопрос ответить можно так. Если клиентская система ожидает от процесса одну модель данных, а он работает в другой, то падения процесса не миновать. В ряде случаев процесс даже не загрузится в память, т.к. загрузчик бинарного кода может по косвенным признакам определить несовместимость процесса и системы у клиента.
    Ответ написан
    Комментировать
  • Учитывается ли тип значения, возвращаемого функцией, в решении о выборе нужной версии перегруженной функции?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Стандартом продиктовано что функции могут перегружаться только параметрами.
    eel.is/c++draft/over#2

    В то же время, стандартом описано что функция не может быть перегружена только лишь изменением возвращаемого значения.
    eel.is/c++draft/over.load#2

    А вот пояснения зарыты глубоко в 13м параграфе стандарта и отрыть их там наскоро не выйдет.
    eel.is/c++draft/#over
    И дело там не только в неявных приведениях типа. Проблем с разрешением перегрузки или инстанциирования шаблона только по возвращаемому значению выше крыши.
    Ответ написан
    Комментировать