The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Результаты аудита безопасности библиотек Boost"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]

. "Результаты аудита безопасности библиотек Boost" +1 +/
Сообщение от Аноним (-), 23-Май-24, 16:50 
Это именно что препроцессор. C++, например, не может проверить эту функцию, насколько она не нарушает установленных правил, пока в неё не будут подставлены конкретные типы, и потом лололо ошибки полезут из этой функции, а не в том месте, где кто-то в качестве аргументов передал значения, для которых операторы + и * не реализованы. Ошибка не в том месте, где кто-то вызвал функцию с неподходящими аргументами, а внутри этой функции, где-то в недрах библиотеки, о которой ты никогда не слышал. Это чистой воды поведение макросов, это именно то за что макросы очень не любят все поголовно, даже те кто ими довольно свободно пользуется: библиотечный код прекращает быть поверхностью API, теперь надо нырять под этот API, и выяснять как оно там работает и почему это оно не принимает аргументы.

Но в C++ на этом принципе вся система типов выстроена. Слово template если ты поинтересуешься переводом, говорит о том же -- это не отсылка к типам переменных, это шаблоны для кода. Но если в нормальных языках, шаблоны для кода называются макросами, то C++ чего-то попутал, и решил что это про типы.

> Препроцессор ничего не знает о языке.

Сишный препроцессор ничего не знает. Но он такой уникальный. Нормальные макроязыки знают о языке немало, отличают статически известные константы, от выражений, чьё значение можно только в рантайме узнать.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Результаты аудита безопасности библиотек Boost, opennews, 23-Май-24, 09:51  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру