http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49399
--- Comment #7 from Jarryd Beck <jarrydb at cse dot unsw.edu.au> 2011-06-14 12:34:35 UTC --- (In reply to comment #6) > (In reply to comment #4) > > Ah, I see. Well the example you gave also doesn't compile. This is exactly > > what > > the boost library does too, I missed that part in their code, meaning that > > parts of boost no longer compile with gcc 4.7. > > And I know it doesn't, as I said "G++ doesn't accept it because access > checking > is not done as part of the substitution process yet." > > Even when that's done, it will only be valid C++0x not, C++03. Ok, I thought that was what you meant. Does this however mean that this bug is now valid for C++0x, given what they say in the link that you gave? "If a substitution results in an invalid type or expression, type deduction fails. An invalid type or expression is one that would be ill-formed if written using the substituted arguments. [Note: Access checking is not done as part of the substitution process. —end note]" Should a bug for the reverse also be filed for the C++03 part of gcc? I wonder what boost mpl people would say about a bug report since this actually works even though it's wrong...