head	1.2;
access;
symbols
	tonic_4:1.2
	tonic_3:1.2
	tonic_2:1.2
	demo:1.2.0.6
	design_report:1.2
	oral_presentation_freeze:1.2.0.4
	DAVEG_CDP:1.2.0.2
	template_integ:1.1.0.2;
locks; strict;
comment	@ * @;


1.2
date	95.11.25.10.14.10;	author hartmans;	state Exp;
branches;
next	1.1;

1.1
date	95.11.19.17.22.04;	author hartmans;	state Exp;
branches;
next	;


desc
@Header for force typeinfo structure
@


1.2
log
@Provide easier mechanism for using force per
discussion with daveg.
@
text
@// This is -*- c++ -*- code 
// $Id: typeinfo.h,v 1.1 1995/11/19 17:22:04 hartmans Exp $

#ifndef __TYPEINFO_H__
#define __TYPEINFO_H__

//  This file provides a mechanism for  generating unique  type identifiers for use by force. 

typedef unsigned long typeinfo_t;

typeinfo_t new_typeinfo();
// Effects: returns a new typeinfo type that has never been used before.
#define force_ptr(ref,type) ((type *)(ref).force(type::typeinfo))
// Requires: type be a type with a static typeinfo member, ref be a
// reference or variable (or dereferenced pointer) of the appropriate
// type, type have a force method that functions as expected
// Effects: returns a pointer to type, instead of one its base types if the
// coersion is well-defined, else returns null.


#endif
@


1.1
log
@player.h: random cleanup, optionalize postion, take time arugment to set_time
board.h: add force method, random cleanup
@
text
@d2 1
a2 1
// $Id$
d13 6
d20 1
@
