
On 16/10/2015 11:14, Joaquin M LópezMuñoz wrote:
Overloads can be only be equal if either Value is not a const type or boost::remove_const is not working... and moreover this was working perfectly fine against former versions of Boost.TypeTraits.
The problem happens not only with global_fun but also with identity, which might be easier to analyze. Could you please run this and report the results?
[...]
The correct result should be:
0 1 0 1
MSVC-7.1 outputs the same result. During previous experiments I even checked that is_const<remove_reference<Value> >::value was true inside const_ref_global_fun_base (static asserted) and even that typename remove_const< typename remove_reference<Value>::type>::type was a different type than typename remove_reference<Value>::type But for some reason MSVC fails to see both overloads as different. Best, Ion