Flow 1.0.2
Flow project: Full implementation reference.
fmt.hpp
Go to the documentation of this file.
1/* Flow
2 * Copyright 2023 Akamai Technologies, Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the
5 * "License"); you may not use this file except in
6 * compliance with the License. You may obtain a copy
7 * of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in
12 * writing, software distributed under the License is
13 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
14 * CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing
16 * permissions and limitations under the License. */
17
18/// @file
19
20/* #include this to use fmt's full API. Reason: With some `gcc`s there's a gcc bug which causes
21 * false warnings when heavy auto-inlining is turned on. #include me, and you won't have to repeat
22 * the below to avoid issues with such `gcc`s.
23 *
24 * @todo Eliminate when/if possible. Some tickets about it:
25 * https://github.com/fmtlib/fmt/issues/2708
26 * https://github.com/fmtlib/fmt/issues/3334
27 * https://github.com/gabime/spdlog/issues/2761
28 *
29 * Also we had to deal with similar in our own code; as of this writing in util/basic_blob.hpp at least. */
30
31#if defined(__GNUC__) && !defined(__clang__)
32# define GCC_COMPILER
33#endif
34
35#ifdef GCC_COMPILER
36# pragma GCC diagnostic push
37# pragma GCC diagnostic ignored "-Wstringop-overflow"
38#endif
39
40#include <fmt/format.h>
41#include <fmt/chrono.h>
42
43#ifdef GCC_COMPILER
44# pragma GCC diagnostic pop
45# undef GCC_COMPILER
46#endif