C ++ в основном статически напечатан, в соответствии с таковой вики или статически?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 C ++ в основном статически напечатан, в соответствии с таковой вики или статически?

Сообщение Anonymous »

я узнал и жил с тем фактом, что C ++ - это статически напечатанный язык. Однако тега вики на переполненных состояниях стека (как в его короткой форме, так и в полной форме): < /p>

c ++-это (в основном) статически типичный [...] Язык программирования < /p>
< /plockquote>
вот мой анализ возможных кандидатов динамических типов: < /p>
/> [*] type

Код: Выделить всё

auto my_var = 24;
< /code>
Нет. Явно статически напечатано. Тип просто выведен из инициализатора. Синтаксис сахар.std::function

Не динамический тип. Но стирание типа. С API, который отвергает время компиляции. Неверные призывы и назначения (вызовы с неправильным типом или количеством аргументов, присваивая другому типу несовместимой функции). < /P>
< /li>

Код: Выделить всё

std::variant

Здесь мы немного попадаем в сферу проверки времени выполнения. Все еще отвергая во время компиляции тип за пределами набора типов, определенного при объявлении, но фактический тип из определенного набора проверяется только во время выполнения (потому что это единственный раз, когда он может быть проверен) < /p>
Я все равно утверждаю, что это все еще очень много в сфере статического типа. Он имеет очень отчетливый тип, который принимается только в определенных местах (вы не можете написать код, который получает строку из std :: variant )

[*]

Код: Выделить всё

std::any

Это в основном проверка типа выполнения. Однако я вижу это как обобщение std :: variant . Из всех предыдущих случаев это единственный, который можно разумно рассмотреть, чтобы сломать систему статического типа. Однако лично я не буду, потому что std :: any является статическим типом, просто тип обернутого значения не известен во время компиляции.
, va_list , va_start , va_arg etc)
Это можно считать действительно динамическим типом в C ++. Это даже слабее, чем динамическое напечаток на других языках, так как вы даже не можете проверить тип во время выполнения (вам необходимо предоставить информацию о типе с другим внешним механизмом, например, отдельный формат строки). И да, это наследство от C, но, тем не менее, это часть языка C ++. C ++ в основном статически напечатан или статически напечатан?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ally-typed
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»