R
request
I have a little piece of code that compiles fine but I think it shouldn't
compile fine. Here it is:
class outer_class {
public:
outer_class () {}
int operator () (int i1, int i2) {
return i1+i2;
}
class inner_class {
public:
inner_class () {}
void inner_method (bool b) {
int retv;
outer_class outer_obj;
if (b) {
retv = outer_obj(3,5);
} else {
/* This here shouldn't be allowed, inner class
is not made friend of outer class anywhere! */
retv = outer_obj(3,5,true);
}
}
};
private:
int operator () (int i1, int i2, bool ignored) {
return i1 * i2;
}
};
compile fine. Here it is:
class outer_class {
public:
outer_class () {}
int operator () (int i1, int i2) {
return i1+i2;
}
class inner_class {
public:
inner_class () {}
void inner_method (bool b) {
int retv;
outer_class outer_obj;
if (b) {
retv = outer_obj(3,5);
} else {
/* This here shouldn't be allowed, inner class
is not made friend of outer class anywhere! */
retv = outer_obj(3,5,true);
}
}
};
private:
int operator () (int i1, int i2, bool ignored) {
return i1 * i2;
}
};