lwpa  0.1.0
LightWeight Platform Abstraction (lwpa)
View other versions:
lwpa_int.h
1 /******************************************************************************
2  * Copyright 2018 ETC Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *******************************************************************************
16  * This file is a part of lwpa. For more information, go to:
17  * https://github.com/ETCLabs/lwpa
18  ******************************************************************************/
19 
20 /* lwpa_int.h: Provide fixed-width C integer types for non-C99 environments. */
21 
22 #ifndef _LWPA_INT_H_
23 #define _LWPA_INT_H_
24 
53 #if DOXYGEN
54 #define HAVE_STDINT_H 1
55 #endif
56 
57 #ifdef __cplusplus
58 
59 #if ((__cplusplus >= 201103L) || (defined(_MSC_VER) && _MSC_VER >= 1600) || HAVE_STDINT_H)
60 /* We are being compiled with C++11 or later, Visual Studio 2010 or later, or
61  * the user has defined HAVE_STDINT_H to 1 to force the inclusion of cstdint */
62 #include <cstdint>
63 #else
64 /* A user-provided integer define file which should define the same things
65  * typically guaranteed to be in stdint.h */
66 #include "stdint_usr.h"
67 #endif
68 
69 #else /* __cplusplus */
70 
71 #if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1600) || \
72  HAVE_STDINT_H)
73 /* We are being compiled with C99 or later, Visual Studio 2010 or later, or the
74  * user has defined HAVE_STDINT_H to 1 to force inclusion of stdint.h */
75 #include <stdint.h>
76 #else
77 /* A user-provided integer define file which should define the same things
78  * typically guaranteed to be in stdint.h */
79 #include "stdint_usr.h"
80 #endif
81 
82 #endif /* __cplusplus */
83 
86 #endif /* _LWPA_INT_H_ */