#include <iostream>
using namespace std;
enum Mutability { Const, Non_Const} ;
template < typename T, Mutability U>
class Obj
{
public :
template < Mutability V>
class Ref
{
public :
Ref( ) { }
friend class Obj;
} ;
Obj( ) { }
} ;
template < typename T>
class Obj< T, Const> :: Ref < Non_Const>
{
private :
Ref( ) { }
} ; //error C1001: An internal error has occurred in the compiler
int main( )
{
Obj< int , Const> :: Ref < Non_Const> test;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKZW51bSBNdXRhYmlsaXR5IHtDb25zdCwgTm9uX0NvbnN0fTsKCnRlbXBsYXRlIDx0eXBlbmFtZSBULCBNdXRhYmlsaXR5IFU+CmNsYXNzIE9iagp7CnB1YmxpYzoKICAgIHRlbXBsYXRlIDxNdXRhYmlsaXR5IFY+CiAgICBjbGFzcyBSZWYKICAgIHsKICAgIHB1YmxpYzoKICAgICAgICBSZWYoKSB7fQoKICAgICAgICBmcmllbmQgY2xhc3MgT2JqOwogICAgfTsKCiAgICBPYmooKSB7fQp9OwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CmNsYXNzIE9iajxULCBDb25zdD46OlJlZjxOb25fQ29uc3Q+CnsKcHJpdmF0ZToKICAgIFJlZigpIHt9Cn07IC8vZXJyb3IgQzEwMDE6IEFuIGludGVybmFsIGVycm9yIGhhcyBvY2N1cnJlZCBpbiB0aGUgY29tcGlsZXIKCmludCBtYWluKCkKewogICAgT2JqPGludCwgQ29uc3Q+OjpSZWY8Tm9uX0NvbnN0PiB0ZXN0Owp9