Игры здесь
Среда, 22.11.2017, 04:55



Приветствую Вас Гость | RSS
[ Главная ] [ MinGW компилятор: особенности объединения флагов - Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Разработка ПО и игр » С++, STL, Boost и все все все » MinGW компилятор: особенности объединения флагов
MinGW компилятор: особенности объединения флагов
DoubleVenomДата: Понедельник, 21.02.2011, 15:41 | Сообщение # 1
Рядовой
Группа: Администраторы
Сообщений: 12
Репутация: 0
Статус: Offline
Для некоторых MinGW компиляторов const | const не является const!
Пример:
//код взят из оригинальной библиотеки Boost
// Parse using appropriate flags
using namespace rapidxml;
const int f_tws = parse_normalize_whitespace
| parse_trim_whitespace; //ок
const int f_c = parse_comment_nodes; //ок
xml_document<Ch> doc;
if (flags & no_comments) {
if (flags & trim_whitespace)
doc.BOOST_NESTED_TEMPLATE parse<f_tws>(&v.front());
else
doc.BOOST_NESTED_TEMPLATE parse<0>(&v.front());
} else {
if (flags & trim_whitespace)
doc.BOOST_NESTED_TEMPLATE parse<f_tws | f_c>(&v.front()); // f_tws | f_c вызовет ошибку компиляции MinGW
else
doc.BOOST_NESTED_TEMPLATE parse<f_c>(&v.front());
}

f_tws | f_c не может быть использован как const
поэтому нужно создавать по постоянной на каждое "или":

const int f_tws_c = parse_normalize_whitespace
| parse_trim_whitespace | parse_comment_nodes;

f_tws_c использовать вместо выражения f_tws | f_c.

 
Форум » Разработка ПО и игр » С++, STL, Boost и все все все » MinGW компилятор: особенности объединения флагов
Страница 1 из 11
Поиск:

Михаил, 2017      Создать бесплатный сайт с uCoz