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_iostream.hpp
Go to the documentation of this file.
1
/*--------------------------------------------------------------------*/
2
/* Copyright 2005 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_iostream_hpp_
10
#define _fei_iostream_hpp_
11
12
#include "
fei_macros.hpp
"
13
14
//
15
//The stuff in this file somewhat protects us from the fact that some
16
//platforms may not put stream-related stuff in the std namespace,
17
//even though most do.
18
//These days (2007) perhaps all platforms do put everything in std and
19
//perhaps no platforms still have iostream.h without having <iostream>, etc.
20
//But historically we've had to account for these possibilities and I see
21
//little to be gained from removing this flexibility at this point.
22
//
23
//The basic mechanism here is to use macros that are defined differently
24
//for certain situations. An alternative approach would be to import
25
//symbols into our namespace, but we choose not to do that since it is
26
//a well-known sin to perform namespace pollution from within a header.
27
//
28
29
#ifdef FEI_HAVE_IOSTREAM
30
#include <iostream>
31
#define FEI_OSTREAM std::ostream
32
#define FEI_ISTREAM std::istream
33
#define FEI_COUT std::cout
34
#define FEI_ENDL std::endl
35
#elif defined(FEI_HAVE_IOSTREAM_H)
36
#include <iostream.h>
37
#define FEI_OSTREAM ostream
38
#define FEI_ISTREAM istream
39
#define FEI_COUT cout
40
#define FEI_ENDL endl
41
#else
42
#error "must have <iostream> or <iostream.h>"
43
#endif
44
//endif for ifdef FEI_HAVE_IOSTREAM
45
46
#ifdef FEI_HAVE_IOMANIP
47
#include <iomanip>
48
#elif defined (FEI_HAVE_IOMANIP_H)
49
#include <iomanip.h>
50
#endif
51
52
#ifdef FEI_HAVE_STD_IOS_FMTFLAGS
53
54
#define IOS_FMTFLAGS std::ios_base::fmtflags
55
#define IOS_SCIENTIFIC std::ios_base::scientific
56
#define IOS_FLOATFIELD std::ios_base::floatfield
57
#define IOS_FIXED std::ios_base::fixed
58
#define IOS_APP std::ios_base::app
59
#define IOS_OUT std::ios_base::out
60
61
#else
62
63
#define IOS_FMTFLAGS long
64
#define IOS_SCIENTIFIC ios::scientific
65
#define IOS_FLOATFIELD ios::floatfield
66
#define IOS_FIXED ios::fixed
67
#define IOS_APP ios::app
68
#define IOS_OUT ios::out
69
70
#ifdef FEI_IOS_FMTFLAGS
71
#undef IOS_FMTFLAGS
72
#define IOS_FMTFLAGS ios::fmtflags
73
#endif
74
75
#endif
76
//endif for ifdef FEI_HAVE_STD_IOS_FMTFLAGS
77
78
#include <
fei_console_ostream.hpp
>
79
#endif
80
//endif for ifndef _fei_iostream_hpp_
81
82
fei_console_ostream.hpp
fei_macros.hpp
Generated by
1.8.5