home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
2.14.0
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
version 2.14.0
doxygen_macros.h
Go to the documentation of this file.
1
/**
2
* \file IMP/doxygen_macros.h
3
* \brief Various general useful macros for IMP.
4
*
5
* Copyright 2007-2020 IMP Inventors. All rights reserved.
6
*
7
*/
8
9
#ifndef IMPKERNEL_DOXYGEN_MACROS_H
10
#define IMPKERNEL_DOXYGEN_MACROS_H
11
#include <IMP/kernel_config.h>
12
// for IMP_OVERRIDE
13
#include "
swig_macros.h
"
14
15
#ifdef IMP_DOXYGEN
16
//! Hide something from doxygen
17
/** */
18
#define IMP_NO_DOXYGEN(x)
19
//! Only show something to doxygen
20
/** */
21
#define IMP_ONLY_DOXYGEN(x) x IMP_REQUIRE_SEMICOLON_CLASS(only_doxy)
22
#define IMP_SWITCH_DOXYGEN(x, y) x
23
#else
24
#define IMP_NO_DOXYGEN(x) x
25
#define IMP_ONLY_DOXYGEN(x) IMP_REQUIRE_SEMICOLON_CLASS(only_doxy)
26
#define IMP_SWITCH_DOXYGEN(x, y) y
27
#endif
28
29
#ifdef IMP_DOXYGEN
30
/** Declare a method that implements a method that is pure virtual in the
31
base class.
32
*/
33
#define IMP_IMPLEMENT(signature)
34
/** Define a method inline that implements a pure virtual method.
35
*/
36
#define IMP_IMPLEMENT_INLINE(signature, body)
37
38
/** Define a method inline that implements a pure virtual method that
39
is hidden from swig.
40
*/
41
#define IMP_IMPLEMENT_INLINE_NO_SWIG(signature, body)
42
43
/** Define an implementation detail template method.
44
*/
45
#define IMP_IMPLEMENTATION_TEMPLATE_1(arg0, signature, body)
46
#define IMP_IMPLEMENTATION_TEMPLATE_2(arg0, arg1, signature, body)
47
#else
48
#define IMP_IMPLEMENT(signature) signature
49
50
#define IMP_IMPLEMENT_INLINE(signature, body) \
51
signature IMP_OVERRIDE { body; }
52
53
#ifndef SWIG
54
#define IMP_IMPLEMENT_INLINE_NO_SWIG(signature, body) \
55
signature IMP_OVERRIDE { body; }
56
#else
57
#define IMP_IMPLEMENT_INLINE_NO_SWIG(signature, body)
58
59
#endif
60
61
#define IMP_IMPLEMENTATION_TEMPLATE_1(arg0, signature, body) \
62
template <arg0> \
63
signature IMP_OVERRIDE { \
64
body \
65
}
66
67
#define IMP_IMPLEMENTATION_TEMPLATE_2(arg0, arg1, signature, body) \
68
template <arg0, arg1> \
69
signature IMP_OVERRIDE { \
70
body \
71
}
72
73
#endif
74
75
#endif
/* IMPKERNEL_DOXYGEN_MACROS_H */
swig_macros.h
Various general useful macros for IMP.