FEI Package Browser (Single Doxygen Collection)
Version of the Day
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
base
fei_macros.hpp
Go to the documentation of this file.
1
/*--------------------------------------------------------------------*/
2
/* Copyright 2007 Sandia Corporation. */
3
/* Under the terms of Contract DE-AC04-94AL85000, there is a */
4
/* non-exclusive license for use of this work by or on behalf */
5
/* of the U.S. Government. Export of this program may require */
6
/* a license from the United States Government. */
7
/*--------------------------------------------------------------------*/
8
9
#ifndef _fei_macros_hpp_
10
#define _fei_macros_hpp_
11
12
13
/*
14
* ALL FEI source files must include this header, either directly or indirectly,
15
* before any declaration or executable statement.
16
*
17
* Once this header has been included, all macros that matter to FEI code are
18
* defined, except for "derivative" macros like FEI_OSTREAM which are defined
19
* in response to other macros (see fei_iostream.hpp,fei_iosfwd.hpp).
20
*/
21
22
23
//Simulate bool support if the compiler being used doesn't have built-in bool
24
//(Is there still such a compiler as of 2007?)
25
//This should almost never be needed.
26
#ifdef FEI_SIMULATE_BOOL
27
#include "
fei_bool.h
"
28
#endif
29
30
31
//FEI_config.h contains macros defined by autoconf-configure. If you
32
//choose not to run configure, you can define the macro
33
// FEI_BYPASS_CONFIG_H when building fei, and when including fei headers
34
//from your client code. This way FEI_config.h (generated by configure)
35
//will not be included.
36
//Note that if you define FEI_BYPASS_CONFIG_H then you should also define
37
//appropriate macros that configure would have defined. The necessary ones
38
//appear below, where they are used to turn on corresponding FEI_ macros.
39
40
#ifndef FEI_BYPASS_CONFIG_H
41
#include "FEI_config.h"
42
#else
43
44
#ifndef HAVE_NO_MPI
45
#define HAVE_MPI
46
#endif
47
48
#endif
49
50
//
51
// React to various configure-defined macros by setting
52
// corresponding fei-specific macros.
53
// Note that we only define fei-specific macros for stuff that we fear may
54
// not always be present. Things that are assumed to always be present (such
55
// as <vector>, <string> etc) are included from various fei files without
56
// macro protection.
57
//
58
59
//If <time.h> is not available, define HAVE_NO_TIME_H and fei files will
60
//not attempt to include it.
61
62
#ifndef HAVE_NO_TIME_H
63
#define FEI_HAVE_TIME_H
64
//allows #include <time.h>
65
#endif
66
67
#ifndef HAVE_NO_IOSFWD
68
#define FEI_HAVE_IOSFWD
69
//allows #include <iosfwd>
70
#endif
71
72
//
73
//In most cases the C++ implementation should supply these headers:
74
// <iosfwd>, <iomanip>, <iostream>, <fstream>, <sstream>
75
//but some very old C++ implementations used to only supply these:
76
// <iomanip.h>, <iostream.h>, <fstream.h>, <sstream.h>
77
//Hopefully these days the 'dotless' headers are always available...
78
//
79
//Below, the 'dotless' headers are assumed to be available by default.
80
//To indicate that one or more of the 'dotless' headers are NOT available,
81
//define the macro HAVE_NO_'HEADER' where 'HEADER' is the header that isn't
82
//available. Then, we'll attempt to use the .h version of the header.
83
//
84
85
#include <stdexcept>
86
87
#ifdef HAVE_NO_IOMANIP
88
#define FEI_HAVE_IOMANIP_H
89
//allows #include <iomanip.h>
90
#else
91
#define FEI_HAVE_IOMANIP
92
//allows #include <iomanip>
93
#endif
94
95
#ifdef HAVE_NO_IOSTREAM
96
#define FEI_HAVE_IOSTREAM_H
97
//allows #include <iostream.h>
98
#else
99
#define FEI_HAVE_IOSTREAM
100
//allows #include <iostream>
101
#endif
102
103
#ifdef HAVE_NO_FSTREAM
104
#define FEI_HAVE_FSTREAM_H
105
//allows #include <fstream.h>
106
#else
107
#define FEI_HAVE_FSTREAM
108
//allows #include <fstream>
109
#endif
110
111
#ifdef HAVE_NO_SSTREAM
112
#define FEI_HAVE_SSTREAM_H
113
//allows #include <sstream.h>
114
#else
115
#define FEI_HAVE_SSTREAM
116
//allows #include <sstream>
117
#endif
118
119
#ifndef FEI_NO_STD_IOS_FMTFLAGS
120
#define FEI_HAVE_STD_IOS_FMTFLAGS
121
//see fei_iostream.hpp
122
#endif
123
124
#ifndef HAVE_MPI
125
#define FEI_SER
126
//if FEI_SER is defined, don't try to include <mpi.h>
127
#endif
128
129
#include "
fei_version.h
"
130
131
#endif // _fei_macros_hpp_
132
fei_version.h
fei_bool.h
Generated on Fri Sep 1 2023 07:58:31 for FEI Package Browser (Single Doxygen Collection) by
1.8.5