Skip to main content

[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



Back to the top