home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
develop.714915d50b,2024/12/07
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
version 20241207.develop.714915d50b
doxygen_macros.h
Go to the documentation of this file.
1
/**
2
* \file IMP/doxygen_macros.h
3
* \brief Helper macros for writing doxygen documentation
4
*
5
* Copyright 2007-2022 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 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 override { body; }
52
53
#ifndef SWIG
54
#define IMP_IMPLEMENT_INLINE_NO_SWIG(signature, body) \
55
signature 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 override { \
64
body \
65
}
66
67
#define IMP_IMPLEMENTATION_TEMPLATE_2(arg0, arg1, signature, body) \
68
template <arg0, arg1> \
69
signature override { \
70
body \
71
}
72
73
#endif
74
75
#endif
/* IMPKERNEL_DOXYGEN_MACROS_H */
swig_macros.h
Macros to hide code from SWIG.