// Use this file to explicitly instantiate templates
//
// To use this file for a class:
//
//   #define JTemplateType ____				<-- normally done by user's code
//   #define JTemplateName ____				<-- normally done by .tmpl file
//   #include <instantiate_template.h>		<-- normally done by .tmpl file
//
// To use this file for a function:
//
//   #define JTemplateType       ____		<-- normally done by user's code
//   #define JTemplateReturnType ____		<-- normally done by user's code
//   #define JTemplateArgList    ____		<-- normally done by user's code
//   #define JTemplateName       ____		<-- normally done by .tmpl file
//   #include <instantiate_template.h>		<-- normally done by .tmpl file

// instantiate function

#if defined JTemplateType && defined JTemplateName && \
	defined JTemplateReturnType && defined JTemplateArgList

	#ifdef __MWERKS__

		template JTemplateReturnType
			JTemplateName<JTemplateType>(JTemplateArgList);

	#elif defined __GNUG__

		template JTemplateReturnType
			JTemplateName(JTemplateArgList);

	#endif

// instantiate class

#elif defined JTemplateType && defined JTemplateName

	#ifdef __VCPP__
	#pragma warning(disable:4661 4660)
	#endif

	template class JTemplateName < JTemplateType >;

#endif
