home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
2.9.0
The Integrative Modeling Platform
IMP Manual
Reference Guide
Modules
Classes
Examples
include
IMP
version 2.9.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-2018 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.