Audacity 3.2.0
TypeListVisitor.h
Go to the documentation of this file.
1/*!********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 @file TypeListVisitor.h
6
7 Paul Licameli
8
9**********************************************************************/
10#ifndef __AUDACITY_TYPELIST_VISITOR__
11#define __AUDACITY_TYPELIST_VISITOR__
12
13#include "TypeList.h"
14#include <functional>
15#include <variant>
16
17namespace TypeListVisitor {
18using namespace TypeList;
19
20template<bool Const, typename TypeList> struct VariantOfReferences
21 : Apply<std::variant,
22 Map_t<Fn<std::reference_wrapper>, MapConst_t<Const, TypeList>>>
23{};
24
27template<bool Const, typename TypeList> using VariantOfReferences_t =
29
30}
31
32#endif
Metaprogramming utilities for manipulating lists of types.
Utilities for compile-time type manipulation. Some terminology as in Lisp.
Definition: TypeList.h:22
typename VariantOfReferences< Const, TypeList >::type VariantOfReferences_t
Bind the types in TypeList to the parameters of a variadic Template.
Definition: TypeList.h:233