The Battle for Wesnoth  1.13.10+dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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.

Classes

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
 

Namespaces

 wfl
 

Typedefs

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 >
 

Functions

 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...