DAW JSON Link
daw_json_exec_modes.h
Go to the documentation of this file.
1 // Copyright (c) Darrell Wright
2 //
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
4 // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)
5 //
6 // Official repository: https://github.com/beached/daw_json_link
7 //
8 
9 #pragma once
10 
11 #include <string_view>
12 
13 namespace daw::json {
15  static constexpr std::string_view name = "constexpr";
16 #if defined( __cpp_constexpr_dynamic_alloc ) or \
17  defined( DAW_JSON_NO_CONST_EXPR )
18  static constexpr bool always_rvo = true;
19 #else
20  static constexpr bool always_rvo = false;
21 #endif
22  static constexpr bool can_constexpr = true;
23  };
25  static constexpr std::string_view name = "runtime";
26  static constexpr bool always_rvo = true;
27  static constexpr bool can_constexpr = false;
28  };
29 #if defined( DAW_ALLOW_SSE42 )
30  struct sse42_exec_tag : runtime_exec_tag {
31  static constexpr std::string_view name = "sse4.2";
32  static constexpr bool always_rvo = true;
33  static constexpr bool can_constexpr = false;
34  };
35  using simd_exec_tag = sse42_exec_tag;
36 #else
38 #endif
40 } // namespace daw::json
daw::json::runtime_exec_tag::always_rvo
static constexpr bool always_rvo
Definition: daw_json_exec_modes.h:26
daw::json
Definition: daw_json_event_parser.h:17
daw::json::constexpr_exec_tag
Definition: daw_json_exec_modes.h:14
daw::json::runtime_exec_tag::name
static constexpr std::string_view name
Definition: daw_json_exec_modes.h:25
daw::json::constexpr_exec_tag::can_constexpr
static constexpr bool can_constexpr
Definition: daw_json_exec_modes.h:22
daw::json::simd_exec_tag
runtime_exec_tag simd_exec_tag
Definition: daw_json_exec_modes.h:37
daw::json::runtime_exec_tag::can_constexpr
static constexpr bool can_constexpr
Definition: daw_json_exec_modes.h:27
daw::json::runtime_exec_tag
Definition: daw_json_exec_modes.h:24
daw::json::constexpr_exec_tag::name
static constexpr std::string_view name
Definition: daw_json_exec_modes.h:15
daw::json::constexpr_exec_tag::always_rvo
static constexpr bool always_rvo
Definition: daw_json_exec_modes.h:20