Apologies for the slow progress on this. This is still down as a high priority bug, but some of the boost libraries are very complex and difficult for VA to parse.
I have found a pair of possible work arounds that might help you. The first work around is to add this to VA's StdAfx.h file:
namespace boost {
template<typename T> class optional {
T* operator->()
{
}
};
}
this is working for me, using a simple test case. Hopefully this will work for you, without requiring you to make any edits to your code.
My second work around is to add
#define VA_BOOST_OPTIONAL(x) x
to VA's StdAfx.h file, but I then had to modify my test code, giving me:
#include <set>
#include <boost/optional.hpp>
#define VA_BOOST_OPTIONAL(x) boost::optional< x >
void test(void) {
boost::optional<std::set<long> > maybeSet1 = std::set<long>();
VA_BOOST_OPTIONAL(std::set<long>) maybeSet2 = std::set<long>();
maybeSet1->insert(0); // underlined
maybeSet2->insert(0); // no underlining, and listbox works
};
Edit VA's "StdAfx.h" file as explained in this FAQ entry:
http://docs.wholetomato.com?W302
add the entries at the bottom, making sure there is a blank line at the end of the file. This file is used to help VA's parser with difficult code, and can be used to work around odd effects. After modifying this file you need to rebuild the VA symbol database for the changes to take effect:
VA Options -> Performance -> General -> Rebuild symbol databases