userver: userver/formats/parse/variant.hpp File Reference
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
variant.hpp File Reference

Ineffective but generic parser for std::variant type. More...

#include <optional>
#include <typeinfo>
#include <variant>
#include <userver/compiler/demangle.hpp>
#include <userver/formats/parse/to.hpp>
+ Include dependency graph for variant.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  formats
 Value formats representation, parsing and serialization.
 
namespace  formats::parse
 Generic parsers and converters.
 

Functions

template<typename ParseException , typename Variant , typename TypeA >
void formats::parse::ThrowVariantAmbiguousParse (const std::string &path, std::type_index type_b)
 
template<class ParseException , typename Variant >
void formats::parse::ThrowVariantParseException (const std::string &path)
 
template<class Value , typename... Types>
std::variant< Types... > formats::parse::Parse (const Value &value, formats::parse::To< std::variant< Types... > >)
 

Detailed Description

Ineffective but generic parser for std::variant type.

Parsing is performed for each of the N alternatives in variant, N-1 exceptions is thrown and caught during the parsing.

Definition in file variant.hpp.