5#ifndef GKO_PUBLIC_CORE_CONFIG_PROPERTY_TREE_HPP_
6#define GKO_PUBLIC_CORE_CONFIG_PROPERTY_TREE_HPP_
30 using key_type = std::string;
31 using map_type = std::map<key_type, pnode>;
32 using array_type = std::vector<pnode>;
59 std::enable_if_t<std::is_integral<T>::value>* =
nullptr>
60 explicit pnode(T integer);
67 explicit pnode(
const std::string& str);
74 explicit pnode(
const char* str);
95 explicit pnode(
const map_type& map);
100 explicit operator bool() const noexcept;
182 void throw_if_not_contain(
tag_t tag) const;
184 static const
pnode& empty_node();
192 std::int64_t integer_;
199template <typename T, std::enable_if_t<std::is_integral<T>::value>*>
202 if (integer > std::numeric_limits<std::int64_t>::max() ||
203 (std::is_signed<T>::value &&
204 integer < std::numeric_limits<std::int64_t>::min())) {
205 throw std::runtime_error(
"The input is out of the range of int64_t.");
207 union_data_.integer_ =
static_cast<std::int64_t
>(integer);
An array is a container which encapsulates fixed-sized arrays, stored on the Executor tied to the arr...
Definition logger.hpp:25
pnode describes a tree of properties.
Definition property_tree.hpp:28
tag_t
tag_t is the indicator for the current node storage.
Definition property_tree.hpp:37
pnode(const array_type &array)
Constructor for array.
pnode(const map_type &map)
Constructor for map.
bool get_boolean() const
Access the boolean value stored in this property node.
const map_type & get_map() const
Access the map stored in this property node.
double get_real() const
Access the real floating point value stored in this property node.
const pnode & get(const std::string &key) const
This function is to access the data under the map.
pnode(double real)
Constructor for double (and also float)
const std::string & get_string() const
Access the string stored in this property node.
pnode(const std::string &str)
Constructor for string.
pnode(bool boolean)
Constructor for bool.
tag_t get_tag() const
Get the current node tag.
pnode()
Default constructor: create an empty node.
const array_type & get_array() const
Access the array stored in this property node.
pnode(const char *str)
Constructor for char* (otherwise, it will use bool)
std::int64_t get_integer() const
The Ginkgo namespace.
Definition abstract_factory.hpp:20
constexpr auto real(const T &x)
Returns the real part of the object.
Definition math.hpp:1013