File 1 - [list.h]
---------------------------------
namespace blah
{
// Obviously this is a commonly used name, especially
// in STL. Note that it is in a different namespace.
class list
{
public:
void DoSomethingStupid( void )
{
}
};
}
File 2 - [OtherCrap.h]
---------------------------------
namespace blah
{
class OtherCrap
{
public:
void DoAnotherStupidThing( void )
{
list* vec = new vector;
vec->DoSomethingStupid();
}
};
}
Above I have provided a better example of what causes the namespace confusion. I have bolded the lines of code above that are the source of the problem.
When I have two classes in the same namespace, but in different files, accessing one class from the other causes the incorrect members to be listed.
In the example above, I'm creating my own 'vector' class from within the class named 'OtherCrap'. Note that I don't explicitly use "blah::vector" in my vector declaration, since I'm already inside of the namespace 'blah'. When I type vec->, this causes the STL member listing to appear. If I add the explicit blah:: to the front of my vector declaration, THEN and ONLY THEN do I get the correct member listing.
Of course the classes I'm working with have very common names and confuses Visual Assist, even though I'm using namespaces but not explicitly typing the scope resolution operator since I'm already inside of the namespace declaration scope.