
OK, thanks for having filed that ticket and thanks to Dave for the explanation. Actually, I didn't have realized that my problem was related to SFINAE, because my intent is not to do SFINAE and concept-based overload selection. I don't want the compiler to select the second overload *because* the check fails on the first one. I want it to be able to select the second overload *event though* the check fails on the first one, just as it does in absence of any check. But now I realize that requesting that the compiler doesn't try to compile the return type of an overload until it has actually decided to select it would mean, precisely, disabling the SFINAE mechanism. So we will follow Dave's advice to use BOOST_CONCEPT_ASSERT instead. I still don't understand why I'm the only one to reproduce that under MSVC. My msvc-8 version is 14.00.50727.42... Thanks for the help Bruno