Revision 10 (by moose, 2006/06/25 10:02:41)
#include <cstdio>
#include <vector>

#define log(a, b...) do{\
	char __tmp__[2048]; \
	snprintf(__tmp__, 2048, a,##b); \
	fprintf(stderr, "%i:%s:%s: %s\n", __LINE__, __FUNCTION__, __FILE__, __tmp__); \
} while(0)

template< typename Type, int Num >
class Data
{
	public:
		Data() { log("Data()"); }
		virtual ~Data() { log("~"); }
		std::vector< Type > vec;
};

class PointData : public Data< double, 3 >
{
	public:
		PointData() { log("PointData"); }
		~PointData() { log("~PointData"); }
};

int main(int argc, char **argv)
{
	Data *data = new PointData;
	delete data;

	return 0;
}