https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109367
--- Comment #2 from Frank Heckenbach <f.heckenb...@fh-soft.de> --- My full testcase consists of many includes files, libraries etc. The type declarations (corresponding to the first two lines of the stripped-down example) are in a header to be called from other translation units, and the function implementation (the last line) in a cpp file, as usual. So this means, decltype can't be used this way at all? If so, not a compiler bug; but severely disappointed in the standard again, rendering a hopeful feature mostly useless by too strict limitations. I hope it will be rectified in C++38 or so ... :/