
gcc 4.8.1 and 4.9.0 will support N3276 decltype. ( http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52748 ) May I commit an attached patch? Regards, Michel

On 13-03-26 01:54 PM, Michel Morin wrote:
gcc 4.8.1 and 4.9.0 will support N3276 decltype. ( http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52748 )
May I commit an attached patch?
Nice. It's John Maddock's call, but I would love to see this. -- Eric Niebler Boost.org

gcc 4.8.1 and 4.9.0 will support N3276 decltype. ( http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52748 )
May I commit an attached patch?
Nice. It's John Maddock's call, but I would love to see this.
If it passes the tests, then sure go ahead and commit. John.

John Maddock wrote:
gcc 4.8.1 and 4.9.0 will support N3276 decltype. ( http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52748 )
May I commit an attached patch?
Nice. It's John Maddock's call, but I would love to see this.
If it passes the tests, then sure go ahead and commit.
Sigh... it turns out that gcc does not implement N3276 completely. I just tested `boost_no_decltype_n3276.ipp`, but it failed to compile. (I had tested decltype for incomplete return types that does not involve any templates: struct S; S f(); decltype(f())* ptr = 0; This test ran successfully.) I'll reopen the PR on gcc bugzilla. Regards, Michel

The implementation is complete. Unfortunately, my fixes for DRs 337 and 657 are interfering with the desired result; creating a function type returning an abstract class causes deduction to fail, so we instantiate the return type of wrap in order to determine whether it is abstract. I guess I'll disable
I reported to the PR ( http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52748 )
that the implementation of N3276 decltype was not complete,
since the compilation of the following code exhausted all resources:
template<class T> struct S;
template
instantiation and raise this issue with Core...
And the fix has been committed: Jason Merrill:
The change to force instantiation to check for abstract return types broke this change; until the core SG has a chance to discuss the language inconsistency, I'm going to disable that instantiation in decltype context.
Tested x86_64-pc-linux-gnu, applying to trunk.
I confirmed the fix and the test ran fine. So I committed a Boost.Config fix in r83625: https://svn.boost.org/trac/boost/changeset/83625 Regards, Michel
participants (3)
-
Eric Niebler
-
John Maddock
-
Michel Morin