CXXR (C++ R)
Classes | Namespaces | Macros
GCNode.hpp File Reference

($Id: GCNode.hpp 1390 2013-06-11 14:41:41Z arr $)

Class CXXR::GCNode. More...

#include <sstream>
#include "CXXR/Allocator.hpp"
#include "CXXR/HeterogeneousList.hpp"
#include "CXXR/MemoryBank.hpp"
#include "CXXR/SchwarzCounter.hpp"
#include <boost/archive/xml_oarchive.hpp>
#include <boost/archive/xml_iarchive.hpp>
#include <boost/serialization/access.hpp>
#include <boost/serialization/export.hpp>
#include <boost/serialization/version.hpp>
Include dependency graph for GCNode.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  CXXR::GCNode
 Base class for objects managed by the garbage collector. More...
struct  CXXR::GCNode::const_visitor
 Abstract base class for the Visitor design pattern. More...
struct  CXXR::GCNode::GCInhibitor
 Not for general use. More...

Namespaces

namespace  CXXR
 Namespace for the CXXR project.

Macros

#define GC_FIND_LOOPS
#define CXXR_NEW(T)   CXXR::GCNode::expose(new T)
 Syntactic sugar for creating CXXR::GCNode objects.

Detailed Description

Class CXXR::GCNode.


Macro Definition Documentation

#define CXXR_NEW (   T)    CXXR::GCNode::expose(new T)

Syntactic sugar for creating CXXR::GCNode objects.

The argument of this macro must be a constructor expression for an object of a class derived from CXXR::GCNode. The macro expansion returns a pointer to a new object created by that constructor expression.

#define GC_FIND_LOOPS

If the preprocessor variable GC_FIND_LOOPS is defined, extra code is inserted which, during a mark-sweep garbage collection, writes to the standard output information about any cycles encountered in the GCNode-GCEdge graph.