Audacity
3.2.0
libraries
lib-utility
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
17
namespace
TypeListVisitor
{
18
using namespace
TypeList
;
19
20
template
<
bool
Const,
typename
TypeList>
struct
VariantOfReferences
21
:
Apply
<std::variant,
22
Map_t<Fn<std::reference_wrapper>, MapConst_t<Const, TypeList>>>
23
{};
24
27
template
<
bool
Const,
typename
TypeList>
using
VariantOfReferences_t
=
28
typename
VariantOfReferences<Const, TypeList>::type
;
29
30
}
31
32
#endif
TypeList.h
Metaprogramming utilities for manipulating lists of types.
TypeList
Utilities for compile-time type manipulation. Some terminology as in Lisp.
Definition:
TypeList.h:22
TypeListVisitor
Definition:
TypeListVisitor.h:17
TypeListVisitor::VariantOfReferences_t
typename VariantOfReferences< Const, TypeList >::type VariantOfReferences_t
Definition:
TypeListVisitor.h:28
TypeList::Apply
Bind the types in TypeList to the parameters of a variadic Template.
Definition:
TypeList.h:233
TypeListVisitor::VariantOfReferences
Definition:
TypeListVisitor.h:23
Generated by
1.9.3