знатокам g++ [g++ -pedantic ругается на long long в boost]

Ventalf

Знатокам g++ и педантичным любителям использовать опцию -pedantic.
Достаточно импортировать
#include <boost/random/mersenne_twister.hpp>
в исходный файл и копмилировать с опцией
g++ m32 -Wall -Wextra -Werror -fPIC -pedantic
и компилятор начинает ругаться
/depot/boost_1_49_0/linux32/include/boost/random/mersenne_twister.hpp:495:1: error: use of C99 long long integer constant
использую boost 1_49_0 и gcc 4.2.1
Как я понимаю суть проблемы заключается в том, что в предпоследнем стандарте С++ нет места для типа "long long", но почему то в довольно современной версии библиотеки boost используется данный тип на что и компилятор с опцией "-pedantic" жалуется.
В текущей версии компилятора с опцией "-pedantic" использования long long интерпретируется как предупреждение, но нет гарантии что в новой версии компилятора использование long long станет недопустимым
Конечно можно выключить опцию "-pedantic" и всё будет работать без проблем, но все же может быть есть более правильное решение проблемы?

doublemother

Либо -std=c++0x, либо -Wno-long-long

Ventalf

-std=c++0x
но ведь слишком рано переходить на свежеиспеченный стандарт
либо -Wno-long-long
это ведь то же самое что и закрыть глаза на проблему а не решить её.
Задача тут не скомпилировать кое как исходник а найти правильное решение.
Решение проблемы наверняка надо искать в самой библиотеке boost.
Кажется что то интересное нашёл, это - boost/cstdint.hpp
Пока что ботаю

erotic

но ведь слишком рано переходить на свежеиспеченный стандарт
Будь в тренде.

doublemother

это ведь то же самое что и закрыть глаза на проблему а не решить её.
Тогда фиксить буст.
Лично я использую c++11 и мои волосы становятся мягкими и шелковистыми.

Maurog

не все предупреждения одинаково полезны :grin:
я бы забил, ибо long long - вполне легальный тип в свежем стандарте

Ventalf

ибо long long - вполне легальный тип в свежем стандарте

значит правильное решение будет
-Wno-long-long
до тех пор пока не перейдем на новый стандарт, главное, чтоб код можно было портировать без особых усилий
всем спасибо

Ventalf

Лично я использую c++11 и мои волосы становятся мягкими и шелковистыми.
выбор версии компилятора не полностью от меня зависит,
в больших компаниях есть кое какие стандарты за рамки которых выходить нельзя
Оставить комментарий
Имя или ник:
Комментарий: