Using the current release of VAX (10.6.1845.0 built 2011.03.13) when accessing a variable that is a class using partial template specialization the member drop down is either missing or only shows functions from the derived class, not the base class. We've seen both behaviors depending on the classes being used.
I've included sample code that I used in a clean project to duplicate the issue (of no member drop down). I've tested it under 3 versions of VS:
VS2005 - doesn't work, no drop down
VS2008 - doesn't work, no drop down
VS2010 - works, see the drop down as expected and it's populated with all functions
TemplateClass.h:
//TemplateClass is uses partial specialization and the member dropdown is missing
template<typename T, int TCount> class TemplateClass;
template<typename T> class TemplateClass<T, 0>
{
public:
TemplateClass() {}
~TemplateClass() {}
void Func1() {}
void Func2() {}
protected:
T m_obj;
};
template<typename T, int TCount = 0> class TemplateClass : public TemplateClass<T, 0>
{
public:
TemplateClass() {}
~TemplateClass() {}
void Func3() {}
void Func4() {}
};
//TemplateClass2 that has a working member dropdown (no partial specialization)
template<typename T> class TemplateClass2
{
public:
TemplateClass2() {}
~TemplateClass2() {}
void Func1() {}
void Func2() {}
protected:
T m_obj;
};
Main.cpp:
#include "TemplateClass.h"
void main(int argc, char* argv[])
{
TemplateClass<int> t1;
TemplateClass2<int> t2;
//t1. No dropdown appears except under VS2010
//t2. Dropdown appears under all 3 VS versions
}