Я предполагаю, что вы не указываете --std=c++0x
при компиляции, поэтому функции C ++ 11, такие как std::is_integral<>
, недоступны.Ваш код компилируется для меня, когда я использую эту опцию.
ОБНОВЛЕНИЕ: теперь, когда вы показали вывод компилятора, проблема в том, что вы включили практически все возможные предупреждения, а также установили -Wpedantic-errors
рассматривать некоторые из них как ошибки.Многие из этих предупреждений вызываются совершенно разумным кодом, и большинству авторов (включая Boost) не потребуется время, чтобы исправить или обойти все из них.
Вам, безусловно, следует удалить -Wpedantic-errors
, если только выиметь конкретное требование, чтобы ни один код не использовал когда-либо специфичные для компилятора расширения;в этом случае вы, вероятно, не можете использовать Boost.Вероятно, было бы неплохо отключить некоторые из менее полезных предупреждений - вы не можете исправить те, которые генерирует Boost, поэтому все, что они делают, - это затрудняет обнаружение подлинных предупреждений о вашем коде.Я обычно стремлюсь скомпилировать чисто с -Wall -Wextra
.