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



             Bug #: 55361

           Summary: Access control in templates only happens when

                    instantiating a method

    Classification: Unclassified

           Product: gcc

           Version: 4.7.2

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: c++

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: jo...@netbsd.org





Consider the following example:



class C

{

    bool blocked;

};

template < class > struct F

{

    void operator* ()

    {

        C a;

        a.blocked;

    }

};



int main() {

F<int> x;

}



The operator is violating the access specifications of C, but this isn't

detected until it is actually used. Nothing in it depends on the template

though, so this check should happen earlier.

Reply via email to