userver: userver/formats/parse/variant.hpp File Reference
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
variant.hpp File Reference

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.

Go to the source code of this file.

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

Namespaces

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

Functions

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