jaulib v1.3.0
Jau Support Library (C++, Java, ..)
float_types.hpp
Go to the documentation of this file.
1/*
2 * Author: Svenson Han Gothel <shg@jausoft.com>
3 * Copyright (c) 2020-2024 Gothel Software e.K.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining
6 * a copy of this software and associated documentation files (the
7 * "Software"), to deal in the Software without restriction, including
8 * without limitation the rights to use, copy, modify, merge, publish,
9 * distribute, sublicense, and/or sell copies of the Software, and to
10 * permit persons to whom the Software is furnished to do so, subject to
11 * the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be
14 * included in all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 */
24
25#ifndef JAU_FLOAT_TYPES_HPP_
26#define JAU_FLOAT_TYPES_HPP_
27
28#if __cplusplus > 202002L
29 #include <stdfloat>
30#endif
31
32namespace jau {
33
34 /** \addtogroup Floats
35 *
36 * @{
37 */
38
39 #if __cplusplus > 202002L
40 /** https://en.cppreference.com/w/cpp/types/floating-point */
43 #else
44 static_assert(32 == sizeof(float));
45 static_assert(64 == sizeof(double));
46 typedef float float32_t;
47 typedef double float64_t;
48 #endif
49
50 namespace float_literals {
51 constexpr float32_t operator ""_f32(float32_t __v) { return (float32_t)__v; }
52 constexpr float64_t operator ""_f64(float64_t __v) { return (float64_t)__v; }
53 } // float_literals
54
55 /**@}*/
56
57} // namespace jau
58
59#endif /* JAU_FLOAT_TYPES_HPP_ */
float float32_t
Definition: float_types.hpp:46
double float64_t
Definition: float_types.hpp:47
__pack(...): Produces MSVC, clang and gcc compatible lead-in and -out macros.
Definition: backtrace.hpp:32