http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53585
--- Comment #2 from Simon Hill <yacwroy at gmail dot com> 2012-06-06 16:43:41 UTC --- Thats... really odd but OK. I guess I read it as you do, the key words being "expressed as". I wonder whether that was the intent, and if so, what their rationale was. IMO it's very arbitrary and unintuitive, and for the life of me I can't think of a reason. Do you think it would be worth requesting a confirmation/clarification of this from the C++ standard working group or similar? (I have no idea what that would entail). Thanks for checking this out. For the moment I guess the workaround is to instead use a type-parameter and require the type to contain a constexpr pointer-to-member.