53 lines
1.7 KiB
C
53 lines
1.7 KiB
C
|
//
|
||
|
// generic.h Macros to support pseudo-templates
|
||
|
//
|
||
|
// =========================================================================
|
||
|
//
|
||
|
// Open Watcom Project
|
||
|
//
|
||
|
// Copyright (c) 2002-2010 Open Watcom Contributors. All Rights Reserved.
|
||
|
// Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved.
|
||
|
//
|
||
|
// This file is automatically generated. Do not edit directly.
|
||
|
//
|
||
|
// =========================================================================
|
||
|
//
|
||
|
#ifndef _GENERIC_H_INCLUDED
|
||
|
#define _GENERIC_H_INCLUDED
|
||
|
|
||
|
#ifndef _ENABLE_AUTODEPEND
|
||
|
#pragma read_only_file;
|
||
|
#endif
|
||
|
|
||
|
#ifndef __cplusplus
|
||
|
#error This header file requires C++
|
||
|
#endif
|
||
|
|
||
|
#define name2(__n1,__n2) __paste2(__n1,__n2)
|
||
|
#define __paste2(__p1,__p2) __p1##__p2
|
||
|
#define name3(__n1,__n2,__n3) __paste3(__n1,__n2,__n3)
|
||
|
#define __paste3(__p1,__p2,__p3) __p1##__p2##__p3
|
||
|
#define name4(__n1,__n2,__n3,__n4) __paste4(__n1,__n2,__n3,__n4)
|
||
|
#define __paste4(__p1,__p2,__p3,__p4) __p1##__p2##__p3##__p4
|
||
|
|
||
|
#define declare(__Cls,__Typ1) \
|
||
|
name2(__Cls,declare)(__Typ1)
|
||
|
#define implement(__Cls,__Typ1) \
|
||
|
name2(__Cls,implement)(__Typ1)
|
||
|
#define declare2(__Cls,__Typ1,__Typ2) \
|
||
|
name2(__Cls,declare)(__Typ1,__Typ2)
|
||
|
#define implement2(__Cls,__Typ1,__Typ2) \
|
||
|
name2(__Cls,implement)(__Typ1,__Typ2)
|
||
|
#define callerror(__Cls,__Typ1,__Typ2,__Typ3) \
|
||
|
(*errorhandler(__Cls,__Typ1))(__Typ2,__Typ3)
|
||
|
#define errorhandler(__Cls,__Typ1) \
|
||
|
name3(__Typ1,__Cls,handler)
|
||
|
#define set_handler(__Cls,__Typ1,__Typ2) \
|
||
|
name4(set_,__Typ1,__Cls,_handler)(__Typ2)
|
||
|
|
||
|
// undocumented AT&T function (WATCOM stub returns first argument)
|
||
|
extern int genericerror( int, char* );
|
||
|
typedef int (*GPT)( int, char* );
|
||
|
|
||
|
#endif
|