The Battle for Wesnoth  1.17.0+dev
Classes | Namespaces | Typedefs | Functions
variant_value.hpp File Reference
#include "exceptions.hpp"
#include "formula/callable_fwd.hpp"
#include "utils/general.hpp"
#include "utils/make_enum.hpp"
#include <functional>
#include <iostream>
#include <iterator>
#include <map>
#include <sstream>
#include <utility>
#include <vector>
#include <boost/range/iterator_range.hpp>
#include <boost/any.hpp>
Include dependency graph for variant_value.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


struct  wfl::type_error
class  wfl::variant_value_base
 Base class for all variant types. More...
class  wfl::variant_numeric
 Base class for numeric variant values. More...
class  wfl::variant_int
class  wfl::variant_decimal
class  wfl::variant_callable
class  wfl::variant_string
class  wfl::variant_container< T >
 Generalized implementation handling container variants. More...
class  wfl::variant_list
class  wfl::variant_map




using wfl::variant_vector = std::vector< variant >
using wfl::variant_map_raw = std::map< variant, variant >
using wfl::value_base_ptr = std::shared_ptr< variant_value_base >


 wfl::MAKE_ENUM (VARIANT_TYPE,(TYPE_NULL, "null")(TYPE_INT, "int")(TYPE_DECIMAL, "decimal")(TYPE_CALLABLE, "object")(TYPE_LIST, "list")(TYPE_STRING, "string")(TYPE_MAP, "map"))
 The various types the variant class is designed to handle. More...
template<typename T >
static std::shared_ptr< T > wfl::value_cast (value_base_ptr ptr)
 Casts a variant_value_base shared pointer to a new derived type. More...
template<typename T >
static T & wfl::value_ref_cast (variant_value_base &ptr)
 Casts a variant_value_base reference to a new derived type. More...