configlib: Remove deprecated std::binary_function inheritance
Original warnings:
configlib/i2n_global_config.hpp:261:15: error: 'template<class _Arg1, class _Arg2, class _Result> struct std::binary_function' is deprecated [-Werror=deprecated-declarations]
configlib/i2n_global_config.hpp:278:15: error: 'template<class _Arg1, class _Arg2, class _Result> struct std::binary_function' is deprecated [-Werror=deprecated-declarations]
configlib/i2n_global_config.hpp:299:15: error: 'template<class _Arg1, class _Arg2, class _Result> struct std::binary_function' is deprecated [-Werror=deprecated-declarations]
configlib/i2n_global_config.hpp:350:18: error: 'template<class _Arg1, class _Arg2, class _Result> struct std::binary_function' is deprecated [-Werror=deprecated-declarations]
Keep std::binary_function inheritance for GCC < 4.8 only.
GCC 4.8.1 was the first version with feature-complete C++11 support.
Require C++11 when using GCC >= 4.8 to avoid ABI mismatch between the
deprecated std::binary_function and modern C++ standard library.
Applied to:
- DefaultConverter<ValueType>
- DefaultConverter<std::string>
- AutoIntConverter<ValueType>
Also added conditional BOOST_STATIC_ASSERT in Var class to check
binary_function inheritance only for GCC < 4.8.