Ion Gaztañaga
[...] During previous experiments I even checked that is_const
::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.
It has to be connected with the new version of remove_const, I guess, though this is as simple as it can possibly get... May I abuse your patience and ask you for one more test? What happens if we add a dummy int* = 0 argument to one of the overloads so that the signature is different? Does MSVC still fail to look up things right when the class is used (as opposed to defined)? Thank you Joaquín M López Muñoz Telefónica