namespace Foo {
class Deriv { } ;
class Another { } ;
template < typename T>
Another operator* ( T x, const Deriv& d ) { return Another( ) ; }
}
namespace Bar {
typedef Foo:: Deriv MyDeriv;
MyDeriv operator* ( float x, const MyDeriv& d) ;
}
namespace Bar {
void f1( ) {
Bar:: MyDeriv a;
Bar:: MyDeriv b = 3 .f * a;
}
}
void f2( ) {
Bar:: MyDeriv a;
Bar:: MyDeriv b = 3 .f * a;
}
int main( ) {
// your code goes here
return 0 ;
}
Cm5hbWVzcGFjZSBGb28gewoKCWNsYXNzIERlcml2IHt9OwoJY2xhc3MgQW5vdGhlciB7fTsKCQoJdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CglBbm90aGVyIG9wZXJhdG9yKiAoIFQgeCwgY29uc3QgRGVyaXYmIGQgKSB7IHJldHVybiBBbm90aGVyKCk7fQp9Cm5hbWVzcGFjZSBCYXIgewoJdHlwZWRlZiBGb286OkRlcml2IE15RGVyaXY7CglNeURlcml2IG9wZXJhdG9yKiAoZmxvYXQgeCwgY29uc3QgTXlEZXJpdiYgZCk7Cn0KCm5hbWVzcGFjZSBCYXIgewoJdm9pZCBmMSgpIHsKCQlCYXI6Ok15RGVyaXYgYTsKCQlCYXI6Ok15RGVyaXYgYiA9IDMuZiAqIGE7Cgl9Cn0KCnZvaWQgZjIoKSB7CglCYXI6Ok15RGVyaXYgYTsgCglCYXI6Ok15RGVyaXYgYiA9IDMuZiAqIGE7Cn0KCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJcmV0dXJuIDA7Cn0=