
On Tue, Jun 3, 2008 at 12:20 PM, Bronek Kozicki <brok@spamcop.net> wrote:
From: "Daniel Walker" <daniel.j.walker@gmail.com>
::boost::mpl::aux::msvc71_sfinae_helper. The problem appears to be triggered by the order in which templates using this substitute are specialized - definitely a bug in msvc.
or maybe demonstration of potential issues related to order of explicit specializations, documented in C++ standard, clause 14.7.3/7 ?
B.
PS. sorry, could not resist ;)
Yes, good point. Thanks for that reference! I think the following may be the greatest sentence in the standard: "When writing a specialization, be careful about its location; or to make it compile will be such a trial as to kindle its self-immolation." Kindle its self-immolation! Ha! That's classic. So, I shouldn't have called it a bug. Maybe you could call this a spark! Or dry kindling? But still, the authors of more recent msvc compilers as well as compilers from other vendors seem to have arrived an interpretation of the standard that doesn't give rise to this peculiar behavior. So, at least for more recent compilers, user intuitions/expectations won't be so disappointed... or rather, won't be burnt to a crisp! Daniel Walker