id summary reporter owner description type status milestone component version severity resolution keywords cc 1734 BOOST_STATIC_WARNING can't be passed a dependent expression Dave Abrahams Robert Ramey "This breaks Boost.Serialization on conforming compilers like Intel/Linux. {{{ #!cpp #include ""boost/static_warning.hpp"" template int f() { BOOST_STATIC_WARNING(T::value); return 0; } struct A{ enum { value = true }; }; int x = f(); }}} The problem is that there's a missing {{{typename}}} in the code generated by the macro: {{{ #!cpp template int f() { struct STATIC_WARNING7 { ::boost::static_warning_impl<(bool)( T::value )> ::type* p; void f() { delete p; } }; // ---------------------^ HERE return 0; } }}} I think there are tricks that can help you get around this requirement (ask Daniel Wallin what he did in the Parameter library), but in the meantime BOOST_STATIC_WARNING should at least be made into a no-op for Intel C++. That is enough to get the library working on one additional platform and might even be an acceptable change for 1.35.0 " Bugs closed Boost 1.36.0 serialization Boost 1.35.0 Problem fixed Beman Dawes