http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53545
--- Comment #3 from Anthony Hall <squidbidness at gmail dot com> 2012-06-01 04:29:26 UTC --- For what it's worth, I discovered the file will successfully compile (with the same compilation command as in original report) if I move the FirstStep, SecondStep, Yes, and No utility templates and specializations out of the HasUpdateMethod to file scope, or embed them in a file-level "detail" namespace, with no other code changes.