VA Outline is very useful and powerful feature, but I have found, that it may work incorrect in some cases. First issue: when I declare friend method in the class. And second: when I use block comment before declaring function.
For instance:
void ff1();
void ff2();
class A
{
public:
void fa1();
/***/void fa2();
};
class B
{
public:
void f2();
friend void A::fa1();
friend void A::fa2();
// friend class A;
};
class C
{
public:
void f3();
friend void ff1();
friend void ff2();
// friend void A::fa1();
// friend class A;
};
class D
{
public:
void f4();
friend void A::fa1();
};
All classes in this code have the same place in hierarchy, but AV Outline show, that classes C and D are the subclasses for the class B. If we comment following lines:
friend void A::fa1();
friend void A::fa2();
in class B or uncomment line
// friend class A;
VA Outline will work correctly. Note that it happens only with methods of other class but not with the global functions as it it is showed in class C, where Outline works correctly.
The second issue consists in that VA Outline does not show method A::fa2() becouse it think that this is only comment.
I'm sorry for my terrible english.
Thanks