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

False positive with -Wmaybe-uninitialized

Boost , Boost.Optional , Gotchas

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

Иногда на компиляторах GCC ниже версии 5.1 вы можете получить предупреждение -Wmaybe-uninitialized при совпадении с опцией -02 на совершенно действительный boost::факультативно. Например, в этой программе:

#include <boost/optional.hpp>
boost::optional<int> getitem();
int main(int argc, const char *[])
{
  boost::optional<int> a = getitem();
  boost::optional<int> b;
  if (argc > 0)
    b = argc;
  if (a != b)
    return 1;
  return 0;
}

Это ошибка в компиляторе. В качестве обхода (предоставляется в это вопрос о переливе стока) используется следующий способ инициализации опционального, не содержащего значения:

boost::optional<int> b = std::make_optional(false, int());

Это явно избыточно, но делает предупреждение исчезающим.


PrevUpHomeNext

Статья False positive with -Wmaybe-uninitialized раздела Boost.Optional Gotchas может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Gotchas ::


реклама


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

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