Hi,
I'm very happy, that smart pointers are (mostly ) working now (build 1524).
("Mostly" as boost::optional<...> still doesn't work at all with VAX - but I couldn't construct a simple test case without the actual lib so far.)
But there are still some problems with overloaded operators which resemble the "smart pointer problem" from the previous build where the overloaded operator->() didn't show up anywhere.
class OpTestResult
{
public:
int someVar;
};
class OpTest
{
public:
OpTestResult operator* (const OpTest& x) const {return OpTestResult();}
OpTestResult operator/ (const OpTest& x) const {return OpTestResult();}
OpTestResult operator- (const OpTest& x) const {return OpTestResult();}
OpTestResult operator+ (const OpTest& x) const {return OpTestResult();}
void testmethod() {}
};
int main()
{
OpTest x1,x2;
x1.|;
(x1+x2).|;
/* (x1+x2).someVar; */
x1.operator+(x2).|;
}
First thing is, that List-Methods (Alt-M IIRC, remapped that) does only show this:
(operator- is missing and operator/ is shown as "operator" without any symbol)
When using Intellisense (List Members) at any of the marked locations, then this is shown:
First, operator* and operator/ are missing...
...for the second and third position (x1+x2). this is wrong in another way as the type of this expression should be OpTestResult offering someVar, while VAX obviously assumes type OpTest.
When I put the cursor at the last statement x1.operator+(x2); it refers to the correct method in VAX's "Definition Field" - but if I try an Intellisense "Parameter Info" inside the parentheses, then nothing happens at all.
Ok, that's all for now.
Looking forward to the next version.