Size: a a a

2021 February 23

s

std::slavik in supapro.cxx
там ссылка(переменная) это ключ в словаре
источник

s

std::slavik in supapro.cxx
значением может быть что угодно
источник

s

std::slavik in supapro.cxx
и там же содержится информация о типе
поменяли значение по ключу - поменяли тип
источник

PY

Phil Yar in supapro.cxx
а в плюсах адрес не ключ тот же? переменные класса лежат в чанке том же, захотели, только часть взяли, и вот уже другой тип
источник

s

std::slavik in supapro.cxx
Phil Yar
а в плюсах адрес не ключ тот же? переменные класса лежат в чанке том же, захотели, только часть взяли, и вот уже другой тип
адрес - значение
источник

s

std::slavik in supapro.cxx
ключ - абстракция времени компиляции
источник

s

std::slavik in supapro.cxx
классов нет в коде нигде скомилированном
они существуют только на этапе компиляции
в этом смысл статической типизации
источник

CD

Constantine Drozdov in supapro.cxx
std::slavik
классов нет в коде нигде скомилированном
они существуют только на этапе компиляции
в этом смысл статической типизации
это с какой стороны посмотреть
источник

CD

Constantine Drozdov in supapro.cxx
с точки зрения логики в памяти объекты лежат
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Phil Yar
а в плюсах адрес не ключ тот же? переменные класса лежат в чанке том же, захотели, только часть взяли, и вот уже другой тип
Ты не можешь обращаться к объекту, который не создан
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Реинтерпрет не создает объект
источник

s

std::slavik in supapro.cxx
Constantine Drozdov
с точки зрения логики в памяти объекты лежат
лежат, но в скомпилированном коде нет информации об их структуре
источник

s

std::slavik in supapro.cxx
просто функция которая работает с этими объектами по нужным смещениям которые определил компилятор достает данные
источник

PY

Phil Yar in supapro.cxx
Ну это понятно, что код на плюсах, условно говоря, перегоняется в си и в ассемблер, и в машинные инструкции. И каждый слой не знает более высокие вещи предыдущего.
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Artöm Bakri Al-Sarmini
Типы должны быть преобразуемы. В общем случае из foo не сделать bar, даже реинтерпретом
Вернее compatible
источник

PY

Phil Yar in supapro.cxx
Artöm Bakri Al-Sarmini
Вернее compatible
а что значит в данном контексте compatible
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Смотри в стандарте, это набор правил
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
А лучше смотри, где можно использовать реинтерпрет и динамик
источник

s

std::slavik in supapro.cxx
Phil Yar
Ну это понятно, что код на плюсах, условно говоря, перегоняется в си и в ассемблер, и в машинные инструкции. И каждый слой не знает более высокие вещи предыдущего.
ну собственно это компромисс в итоге - если мы переносим все в рантайм - программировать удобно, но за это придется платить доп памятью и процессорным временем и еще таскать с собой скорей всего интерпретатор, если переносим все в компайл тайм - платим сложностью программирования
источник

s

std::slavik in supapro.cxx
вот типа использование 0 адреса как нулевого указателя - один из компромиссов - потеряв по сути одно слово машинное из адресного пространства мы получаем возможность в рантайме по сути "изменять тип указателя"  делая его с точки зрения языка инициализированным/не инициализированным, при этом сохраняя статическую типизацию
источник