Вот код, который построил Джек:
#include <cstdint>
#include <type_traits>
//-------------------------------------------------------------------------
#include <boost/utility/enable_if.hpp>
#include <boost/type_traits/is_fundamental.hpp>
//-------------------------------------------------------------------------
template <typename T, typename Predicate = void> struct BoostTest;
template <typename T> struct BoostTest <T, typename boost::enable_if<boost::is_integral<T>>::type> { };
//-------------------------------------------------------------------------
template <typename T, typename Predicate = void> struct StdTest;
template <typename T> struct StdTest <T, typename std::enable_if<std::is_integral<T>::value_type>::type> { };
//-------------------------------------------------------------------------
int main(int argc, char** argv)
{
StdTest<int> stdOk; // Err???
StdTest<float> stdErr; // Err
BoostTest<int> boostOk; // Ok
BoostTest<float> boostErr;// Err
return 0;
}
Компилятор: MinGW32-gcc 4.8.1
boost: 1.55