CodeStore and Incremental C++ 
by Lee R. Nackman


Listing One 
/* A.h */ 
#ifndef A_H
#define A_H
#include "B.h"
class A : public B 
{
public:
  B* f() { return new B; }
};
#endif

/* B.h */
#ifndef B_H
#define B_H
#include "A.h"
class B 
{
public:
  A* g() { return new A; }
};
#endif

/* main.cpp */
#include "B.h"
int main()
{
  B b;
  return 0;
}


Listing Two
/* A.h */
class A : public B 
{
public:
  B* f() { return new B; }
};

/* B.h */
class B 
{
public:
  A* g() { return new A; }
};

/* main.cpp */
int main()
{
  B b;
  return 0;
}


Listing Three
option
link(linkwithmultithreadlib),         // Use multi-threaded library
link(linkwithsharedlib)               // Use shared library
   {
   target "carlot.exe"                // Produce an executable
      {
      option
      lang(offsetofnonpodclasses),    // Backward compatibility for old code
      lang(digraph, no),
      includepath("."),
      define("_System", ""),
      lang(nokeyword, "true"),
      lang(nokeyword, "false")
         {
         source type(cpp) "carlot.cpp"  // List of C++ sources
         source type(cpp) "car.hpp"
         source type(cpp) "car.cpp"
         source type(cpp) "truck.hpp"
         source type(cpp) "truck.cpp"
         source type(cpp) "vehicle.hpp"
         source type(cpp) "vehicle.cpp"
         source type(cpp) "vlist.hpp"
         source type(cpp) "vlist.cpp"
         }
      }
   }


Listing Four
Source region 1     class A
                    {1,6
                      void f(B2&);7
                    };8

Source region 2     class B
                    {3
                      void f(A&);4
                    };5

Source region 3     void f(NotThere9&);


12

3



	1


