[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] CDT Indexer not properly indexing Boost > 1.36

From a post I made on the CDT newsgroup and hoping to get some more comments here:

Boost Version 1.39 gives the indexer fits where Boost 1.36 does not. Unfortunately I have to use Boost 1.39 in order to build universal binaries for OS X. If one of the CDT indexer developers would like to play around with Boost for a bit and maybe come up with a reason as to why it is failing that would be great.

in the Example code (included below), down in the "main" method, if I type "t->" and hit the "ctrl-space" for code completion suggestions, I will get "setMyIntger(int)" as one of the suggestions if I use boost 1.36. If I use Boost 1.39 or boost 1.40 then I will not get any suggestions.

Indexer results for Boost 1.36
Indexed 'Test' (1 sources, 189 headers) in 2.12 sec: 13,649 declarations; 22,479 references; 0 unresolved inclusions; 0 syntax errors; 23 unresolved names (0.06%)


Indexer Results for Boost 1.40
Indexed 'Test' (1 sources, 147 headers) in 2.40 sec: 12,792 declarations; 20,940 references; 0 unresolved inclusions; 0 syntax errors; 13 unresolved names (0.04%)



Any help on why the indexer is failing would be just awesome.. Or maybe this whole thing should be put into a bug report?



Here is my example Code:


//-- Boost Includes #include <boost/shared_ptr.hpp> #include <boost/weak_ptr.hpp>

/**
* @brief Creates a static method that returns a NULL pointer wrapped in a
* boost::shared_ptr<>
* @param thisClass The name of the class.
*/
#define MXA_NULL_SHARED_POINTER(thisClass)\
static Pointer NullPointer(void) { \
return Pointer(static_cast<thisClass*>(NULL));\
}


/**
* @brief Creates some basic typedefs that can be used throughout the code to
* reference the class.
*/
#define MXA_SHARED_POINTERS(thisClass)\
typedef thisClass Self;\
typedef boost::shared_ptr< Self > Pointer;\
typedef boost::shared_ptr<const Self > ConstPointer;\
typedef boost::weak_ptr< thisClass > WeakPointer;\
typedef boost::weak_ptr< thisClass > ConstWeakPointer;\
MXA_NULL_SHARED_POINTER(thisClass)


/**
* @brief Creates a "setter" method to set the property.
*/
#define MXA_SET_PROPERTY_m(type, prpty) \
  void set##prpty(type value) { this->m_##prpty = value; }

/**
* @brief Creates a "getter" method to retrieve the value of the property.
*/
#define MXA_GET_PROPERTY_m(type, prpty) \
type get##prpty() { return m_##prpty; }



#define MXA_INSTANCE_PROPERTY_m(type, prpty)\ private:\ type m_##prpty;\ public:\ MXA_SET_PROPERTY_m(type, prpty)\ MXA_GET_PROPERTY_m(type, prpty)

// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
class Test
{
MXA_SHARED_POINTERS(Test)
~Test() {}
MXA_INSTANCE_PROPERTY_m(int, MyInteger);
protected:
Test() {}
private:
Test(const Test&); // Copy Constructor Not Implemented
void operator=(const Test&); // Operator '=' Not Implemented
};


// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
int main() {


  Test::Pointer t = Test::New();
  t->
  return 0;
}


_________________________________________________________ Mike Jackson mike.jackson@xxxxxxxxxxxxxx BlueQuartz Software www.bluequartz.net Principal Software Engineer Dayton, Ohio