I think re-declare a deleted function is well-formed.

void f() = delete ; // shall be the first declaration of the function
void f() ; // re-declare a previous deleted function.

But doing so makes gcc does not issue correct compile errors on following code.

void f() = delete ;
void f() ; // if I comment out this line. gcc issues correct errors.

int main()
{
    // should be error: use of deleted function 'void f()'
    // gcc does not issue error for this.
    typedef decltype(f) type ;

    // gcc issues error for this.
    // However, error message was: undefined reference to `f()'
    // correct error should be: use of deleted function 'void f()'
    f() ;
}


-- 
           Summary: Redeclare a deleted funciton makes gcc does not issue
                    compile error
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: boostcpp at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45539

Reply via email to