ViennaLS
Toggle main menu visibility
Loading...
Searching...
No Matches
lsPreCompileMacros.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#ifdef VIENNALS_USE_PRECOMPILED
4
5
#define PRECOMPILE_PRECISION_DIMENSION(className) \
6
typedef className<double, 2> className##_double_2; \
7
typedef className<double, 3> className##_double_3; \
8
typedef className<float, 2> className##_float_2; \
9
typedef className<float, 3> className##_float_3; \
10
extern template class className<double, 2>; \
11
extern template class className<double, 3>; \
12
extern template class className<float, 2>; \
13
extern template class className<float, 3>;
14
15
#define PRECOMPILE_PRECISION(className) \
16
typedef className<double> className##_double; \
17
typedef className<float> className##_float; \
18
extern template class className<double>; \
19
extern template class className<float>;
20
21
#else
22
23
// do nothing if we use header only
24
#define PRECOMPILE_PRECISION_DIMENSION(className) \
25
typedef className<double, 2> className##_double_2; \
26
typedef className<double, 3> className##_double_3; \
27
typedef className<float, 2> className##_float_2; \
28
typedef className<float, 3> className##_float_3;
29
30
#define PRECOMPILE_PRECISION(className) \
31
typedef className<double> className##_double; \
32
typedef className<float> className##_float;
33
34
#endif
35
36
#define PRECOMPILE_SPECIALIZE(className) \
37
template class className<double, 2>; \
38
template class className<double, 3>; \
39
template class className<float, 2>; \
40
template class className<float, 3>;
41
42
#define PRECOMPILE_SPECIALIZE_PRECISION(className) \
43
template class className<double>; \
44
template class className<float>;
include
viennals
lsPreCompileMacros.hpp
Generated by
1.18.0