Здравствуйте, so5team, Вы писали:
ЕМ>>>>привести указатель на float к указателю на unsigned int, чтоб извлечь внутреннее представление плавающего числа?
S>>>С++ это и не позволяет.
ЕМ>>Как, и с каких пор?
S>Со времен C++98. Здесь можете посмотреть раздел 3.10.15.
Во-первых, там речь об lvalue, а для того, о чем писал я, достаточно rvalue.
Во-вторых, не вижу там характерных слов, вроде "impossible", "unsupported", "not implemented" и подобных. Возможно, недостаточно знаю английский.
В-третьих, до низкого уровня, слава богу, [пока] не добралась модная традиция "стерильного программирования", требующая, чтобы исходники какого-нибудь начального загрузчика гарантированно собирались у любого дятла, сумевшего их раздобыть вместе с компилятором соответствующего стандарта языка. Там это совершенно не нужно, и вряд когда-нибудь станет.
S>>>Эта частность под запретом.
ЕМ>>Как, с каких пор?
S>ЕМНИП, всю жизнь.
S>За подробностями сюда: https://stackoverflow.com/a/11996970
Опять же не вижу в стандартах и документации характерных слов, вроде "prohibuted", "not allowed" , "disabled", "illegal" и т.п.
S>За 30 лет практического применения C++ я написал туеву хучу кода, который работал на самых разных платформах и компиляторах. И тема ABI передо мной вообще никогда не вставала. В отличии от вопросов о соответствии стандарту и поведению одного и того же кода в разных условиях.
Это потому, что Вы работаете на высоких уровнях — там и я стараюсь поддерживать ту "стерильность", хотя и не на столь фанатичном уровне, что нынче в моде. Это из серии "сделайте устройство, которым сможет пользоваться даже дурак...".
S>Вы хотели определение -- вы его получили.
Во-первых, я хотел определения
макропроцессора вообще, а получил определение такового
общего назначения. Это как в соседней теме о ножах, только наоборот: я несколько раз подчеркивал, что речь идет о совершенно банальных ножах "для всего", а мне в ответ упорно суют примеры узкоспециализированных, целевых изделий.
Во-вторых, не ожидал от Вас апелляции к Википедии в роли источника единых, всеобщих определений, выходящих за пределы строгих наук.
S>Если это определение (соответствующие действительности для тех же C и C++) рвет вам шаблоны и рушит картину мира
Не, препроцессоры C/C++ у меня вызывают лишь чувства брезгливости и стыда за разработчиков языков. Если убожество препроцессора C еще можно понять (малые машины, ограниченные ресурсы, непонятные перспективы языка и т.п.), то его точное копирование в C++ уже за пределами моего понимания. Что ж, они хотели избежать ада макросов — получилп ад шаблонов, и до сих пор делают вид, будто это случилось
внезапно.
А такое случается со всей без исключения
искусственно ограниченной функциональностью. Я вот сам на командном языке винды порой пишу такое, что самому рыдать хочется, но перенести сразу все рабочее хотя бы на PowerShell (который тоже ужасен) никак руки не дойдут.
S>Дайте ссылку на какое-либо другое определение макро-процессора
Ну вот Вам от Алисы, по запросу "определение встроенного макропроцессора":
Встроенный макропроцессор — это программа, которая встроена в другую программу (например, компилятор, ассемблер) и выполняет систематическую замену текста на основе макросов. Макрос — это средство замены строки на другую, полученную из исходной по заранее заданным правилам.