2013-02-17 3 views
1

Мне сложно определить, какие макросы препроцессора я должен использовать с помощью Boost для (1) отладочной аппаратуры (например, проверенных итераторов) и (2) элементов, связанных с безопасностью.Руководство по упрощению BOOST (макросы препроцессора)

Все, что я могу найти, это Preprocessor Metaprogramming (ссылка на www.boost.org/libs/preprocessor/).

ОБНОВЛЕНИЕ (02-18-2013): Я нашел Boost Macro Reference, но в нем нет ничего, связанного с отладкой или безопасностью.

Кто-нибудь знает список доступных макросов препроцессора для отладки и безопасности или руководства по упрощению?

+0

Ответ, скорее всего, зависит от библиотеки ускорения, на кого вы нацеливаетесь? –

+0

Спасибо @Sam. Что касается библиотеки - ее всех. Boost предположительно имеет требования к кодированию, проверки качества и т. Д. Поэтому я ожидаю, что у них есть что-то похожее на '_GLIBCXX_DEBUG' или Microsoft' _HAS_ITERATOR_DEBUGGING'. Или делает Boost пикап на этих макросах (и чести других, таких как 'DEBUG' и' _DEBUG')? – jww

ответ

1

Нет никаких эквивалентов, о которых я знаю в любой из библиотек boost. Некоторые из них относятся к NDEBUG и делают оптимизацию на основе этого (и есть также некоторые утверждения NDEBUG отключить), поэтому установка NDEBUG для выпуска, но не отладка, как представляется, ожидается (оставив NDEBUG undefined для выпуска считается «упрочнением» I не знаю). Но, конечно же, ни у кого из libs нет опций, кроме тех, которые дают им дополнительную броню или отлаживаемость.

Как библиотеки Повышения должны взаимодействовать с Microsoft, _HAS_ITERATOR_DEBUGGING и особенно _SECURE_SCL является повторяющейся дискуссии смотри, например, here, here и here (для «заголовок-только» библиотеки это не имеет большого значения, это больше проблем, что делает что DLL совместимы с тем, что ожидают интеграторы, и нет универсального соглашения о том, следует ли использовать MS defaults для этих параметров или нет, поскольку многие люди с подозрением относятся к накладным расходам на производительность).

+0

Спасибо @timday. Я сделаю заметку в [C-Based Toolchain Hardening] (https://www.owasp.org/index.php/C-Based_Toolchain_Hardening#Additional_Macros). Jeff – jww

+0

Ваше имя «Tim Day»? Я хотел бы привести вас в статье OWASP. – jww

+0

Да, это нормально. Теперь я видел контекст, добавив еще несколько ссылок выше. – timday

Смежные вопросы