casacore
Loading...
Searching...
No Matches
generic.h
Go to the documentation of this file.
1// # generic.h: some defines, from the GNU C++ Library
2// # This may look like C code, but it is really -*- C++ -*-
3// #
4// # Copyright (C) 1988 Free Software Foundation
5// # written by Doug Lea (dl@rocky.oswego.edu)
6// #
7// # This file is part of the GNU C++ Library. This library is free
8// # software; you can redistribute it and/or modify it under the terms of
9// # the GNU Library General Public License as published by the Free
10// # Software Foundation; either version 2 of the License, or (at your
11// # option) any later version. This library is distributed in the hope
12// # that it will be useful, but WITHOUT ANY WARRANTY; without even the
13// # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14// # PURPOSE. See the GNU Library General Public License for more details.
15// # You should have received a copy of the GNU Library General Public
16// # License along with this library; if not, write to the Free Software
17// # Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
18
19#ifndef CASA_GENERIC_H
20#define CASA_GENERIC_H
21
22namespace casacore { // # NAMESPACE CASACORE - BEGIN
23
24/*
25 * See the CPP manual, argument prescan section for explanation
26 */
27
28// <summary>Generic gnu macros</summary>
29// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="" demos="">
30// </reviewed>
31// <group name=def>
33#define g_name2(a, b) gEnErIc2(a, b)
34#define gEnErIc2(a, b) a##b
35
36#define g_name3(a, b, c) gEnErIc3(a, b, c)
37#define gEnErIc3(a, b, c) a##b##c
38
39#define g_name4(a, b, c, d) gEnErIc4(a, b, c, d)
40#define gEnErIc4(a, b, c, d) a##b##c##d
41
42#define GENERIC_STRING(a) gEnErIcStRiNg(a)
43#define gEnErIcStRiNg(a) #a
44
45#define g_declare(clas, t) g_name2(clas, declare)(t)
46#define g_declare2(clas, t1, t2) g_name2(clas, declare2)(t1, t2)
47
48#define g_implement(clas, t) g_name2(clas, implement)(t)
49#define g_implement2(clas, t1, t2) g_name2(clas, implement2)(t1, t2)
50
51// extern genericerror(int,char*);
52typedef int (*GPT)(int, char*);
53
54#define g_set_handler(gen, type, x) g_name4(set_, type, gen, _handler)(x)
55
56#define g_errorhandler(gen, type) g_name3(type, gen, handler)
57
58#define g_callerror(gen, type, a, b) (*g_errorhandler(gen, type))(a, b)
59
60// </group>
61
62} // namespace casacore
63
64#endif
For temporary backward namespace compatibility, use casa as alias for casacore.
Definition mainpage.dox:28
int(* GPT)(int, char *)
extern genericerror(int,char*);
Definition generic.h:52