keyval.h File Reference
#include <array>
#include <cassert>
#include <iostream>
#include <list>
#include <map>
#include <memory>
#include <stdexcept>
#include <string>
#include <vector>
#include <boost/core/demangle.hpp>
#include "mpqc/mpqc_config.h"
#include <boost/property_tree/info_parser.hpp>
#include <boost/property_tree/json_parser.hpp>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
#include <boost/serialization/export.hpp>
#include "mpqc/util/core/exenv.h"
#include "mpqc/util/keyval/fwd.h"
#include "mpqc/util/meta/predicates.h"
#include "mpqc/util/meta/stream.h"
Include dependency graph for keyval.h:
This graph shows which files directly or indirectly include this file:
Classes | |
struct | boost::property_tree::customize_stream< Ch, Traits, E *, void > |
class | mpqc::DescribedClass |
struct | mpqc::DescribedClass::registrar< T, typename > |
class | mpqc::KeyVal |
KeyVal specifies C++ primitive data (booleans, integers, reals, string) and user-defined objects obtained from JSON/XML/INFO input or by programmatic construction. More... | |
struct | mpqc::KeyVal::dummy_validator_t |
struct | mpqc::KeyVal::is_nonnegative_t |
struct | mpqc::KeyVal::is_positive_t |
struct | mpqc::KeyVal::bad_input |
KeyVal exception. More... | |
class | mpqc::detail::SubTreeKeyVal |
struct | mpqc::detail::make_list_error |
Namespaces | |
boost | |
boost::property_tree | |
mpqc | |
The top-level namespace for all Massively Parallel Quantum Chemistry package. | |
mpqc::detail | |
Macros | |
#define | MPQC_CLASS_REGISTER_GUID(K, ...) |
#define | MPQC_BOOST_CLASS_EXPORT_KEY2(K, ...) |
#define | MPQC_CLASS_EXPORT_KEY2(K, ...) |
Associates a key (character string) with a class using and register the class's KeyVal constructor with DescribedClass's registry. This does not register class with Boost.Serialization, use MPQC_BOOST_CLASS_EXPORT_KEY2 for that. More... | |
#define | MPQC_CLASS_EXPORT_KEY(...) MPQC_CLASS_EXPORT_KEY2(BOOST_PP_STRINGIZE(__VA_ARGS__), __VA_ARGS__) |
Associates a key (character string) with a class and register the class's KeyVal constructor with DescribedClass's registry. This does not register class with Boost.Serialization, use MPQC_BOOST_CLASS_EXPORT_KEY2 for that. More... | |
#define | MPQC_BOOST_CLASS_EXPORT_IMPLEMENT(...) |
Forces the class instantiation so that it can be deserialized with Boost.Serialization. More... | |
Typedefs | |
template<typename T > | |
using | mpqc::Describable = std::is_base_of< DescribedClass, std::decay_t< T > > |
Functions | |
template<typename T > | |
const char * | mpqc::detail::guid () |
KeyVal | mpqc::operator+ (const KeyVal &first, const KeyVal &second) |
template<typename KV > | |
KV | mpqc::detail::kv_append (KV &&kv) |
template<typename KV , typename Key , typename Value , typename... RestOfArgs> | |
KV | mpqc::detail::kv_append (KV &&kv, Key &&key, Value &&value, RestOfArgs &&... rest_of_args) |
template<typename T , typename... Args> | |
T | mpqc::detail::get_list_t (int, std::initializer_list< T >) |
template<typename... Args> | |
make_list_error | mpqc::detail::get_list_t (short, make_list_error) |
std::string | mpqc::detail::dump (const KeyVal &kv) |
creates a string representation of a KeyVal object useful for debugging More... | |
KeyVal | mpqc::make_kv () |
make an empty KeyVal More... | |
template<typename... Args> | |
std::enable_if_t< sizeof...(Args) % 2==1, KeyVal > | mpqc::make_kv (Args &&... args) |
report an error if make_kv receives an odd number of arguments More... | |
template<typename Key , typename Value , typename... RestOfArgs> | |
KeyVal | mpqc::make_kv (Key &&key, Value &&value, RestOfArgs &&... rest_of_args) |
template<typename... Args> | |
auto | mpqc::make_list (Args &&... args) |