Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Visual C++ gotchas in VMD

Boost , Chapter 1. The Variadic Macro Data Library 1.9 , Chapter 1. The Variadic Macro Data Library 1.9

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Я обсуждал все области документации VMD, которые необходимо учитывать при использовании компиляторов Microsoft Visual C++. Библиотека VMD поддерживает версии VC++ 8 до последних 14. Они соответствуют Visual Studio 2005 через текущую Visual Studio 2015.

Здесь я довольно кратко приведу причуды VC++, которые следует учитывать при использовании VMD. Эти причуды существуют, потому что компилятор VC++ не имеет стандартного препроцессора, соответствующего C++. В частности, компилятор VC++ не следует всем правилам для расширения макроса при вызове макроса. Вот список вещей, которые следует учитывать при использовании VMD с VC++:

  • Макрос BOOST_VMD_IS_EMPTY будет ошибочно расширяться до 1, если вход разрешает функциональные макроимя, которое при вызове с пустым параметром расширяется до кортежа.
  • Макрос BOOST_VMD_ASSERT и соответствующие отдельные макросы VMD ASSERT для различных типов данных не вызывают немедленной ошибки компилятора, а вместо этого генерируют недействительный C++, если происходит ASSERT.
  • Когда макрос BOOST_VMD_ASSERT, или один из соответствующих отдельных макросов VMD ASSERT для различных типов данных, не генерирует ошибку, и макрос, в котором он используется, генерирует некоторый выход, необходимо использовать BOOST_PP_CAT для конкретизации пустого результата макроса VMD ASSERT с обычно сгенерированным выходом, чтобы правильно генерировать окончательное расширение макроса, в котором происходит VMD ASSERT.
  • При использовании BOOST_VMD_EMPTY после некоторого непустого расширения или при использовании BOOST_VMD_IDENTITY возвращаемое значение должно быть сцеплено с использованием BOOST_PP_CAT с пустым значением. Для этого можно использовать BOOST_VMD_IDENTITY_RESULT.
  • Избегайте использования пустых скобок для передачи данных в виде кортежа или сек, если VC++8 может использоваться в качестве компилятора.

PrevUpHomeNext

Статья Visual C++ gotchas in VMD раздела Chapter 1. The Variadic Macro Data Library 1.9 Chapter 1. The Variadic Macro Data Library 1.9 может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chapter 1. The Variadic Macro Data Library 1.9 ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 19:02:20/0.0082728862762451/1