aboutsummaryrefslogtreecommitdiff
path: root/src/univalue/include/univalue.h
diff options
context:
space:
mode:
authorMacroFake <falke.marco@gmail.com>2022-07-14 18:03:22 +0200
committerMacroFake <falke.marco@gmail.com>2022-07-18 10:37:00 +0200
commitfafab147e7ff41ab1b961349f20a364f6bf847d2 (patch)
treea54d15f179e54f278df62ef51421480ad793ef91 /src/univalue/include/univalue.h
parent4e2929e987fc71c1df9d109210bd2527ccefca34 (diff)
move-only: Move UniValue::getInt definition to keep class with definitions only
Can be reviewed with the git options --color-moved=dimmed-zebra --color-moved-ws=ignore-all-space
Diffstat (limited to 'src/univalue/include/univalue.h')
-rw-r--r--src/univalue/include/univalue.h29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/univalue/include/univalue.h b/src/univalue/include/univalue.h
index 5cb8268472..b665954927 100644
--- a/src/univalue/include/univalue.h
+++ b/src/univalue/include/univalue.h
@@ -116,19 +116,7 @@ public:
const std::vector<std::string>& getKeys() const;
const std::vector<UniValue>& getValues() const;
template <typename Int>
- auto getInt() const
- {
- static_assert(std::is_integral<Int>::value);
- if (typ != VNUM) {
- throw std::runtime_error("JSON value is not an integer as expected");
- }
- Int result;
- const auto [first_nonmatching, error_condition] = std::from_chars(val.data(), val.data() + val.size(), result);
- if (first_nonmatching != val.data() + val.size() || error_condition != std::errc{}) {
- throw std::runtime_error("JSON integer out of range");
- }
- return result;
- }
+ Int getInt() const;
bool get_bool() const;
const std::string& get_str() const;
double get_real() const;
@@ -146,6 +134,21 @@ void UniValue::push_backV(It first, It last)
values.insert(values.end(), first, last);
}
+template <typename Int>
+Int UniValue::getInt() const
+{
+ static_assert(std::is_integral<Int>::value);
+ if (typ != VNUM) {
+ throw std::runtime_error("JSON value is not an integer as expected");
+ }
+ Int result;
+ const auto [first_nonmatching, error_condition] = std::from_chars(val.data(), val.data() + val.size(), result);
+ if (first_nonmatching != val.data() + val.size() || error_condition != std::errc{}) {
+ throw std::runtime_error("JSON integer out of range");
+ }
+ return result;
+}
+
enum jtokentype {
JTOK_ERR = -1,
JTOK_NONE = 0, // eof