class StringSwitch
Declaration
template <typename T, typename R = T>
class StringSwitch { /* full declaration omitted */ };
Description
A switch()-like statement whose cases are string literals. The StringSwitch class is a simple form of a switch() statement that determines whether the given string matches one of the given string literals. The template type parameter \p T is the type of the value that will be returned from the string-switch expression. For example, the following code switches on the name of a color in \c argv[i]:
Declared at: llvm/include/llvm/ADT/StringSwitch.h:44
Templates
- T
- R = T
Member Variables
- private const llvm::StringRef Str
- The string we are matching.
- private Optional<T> Result
- The pointer to the result of this switch statement, once known, null before that.
Method Overview
- public StringSwitch<T, R> & Case(llvm::StringLiteral S, T Value)
- public StringSwitch<T, R> & CaseLower(llvm::StringLiteral S, T Value)
- public StringSwitch<T, R> & Cases(llvm::StringLiteral S0, llvm::StringLiteral S1, llvm::StringLiteral S2, llvm::StringLiteral S3, llvm::StringLiteral S4, llvm::StringLiteral S5, llvm::StringLiteral S6, llvm::StringLiteral S7, llvm::StringLiteral S8, llvm::StringLiteral S9, T Value)
- public StringSwitch<T, R> & Cases(llvm::StringLiteral S0, llvm::StringLiteral S1, llvm::StringLiteral S2, llvm::StringLiteral S3, llvm::StringLiteral S4, llvm::StringLiteral S5, llvm::StringLiteral S6, llvm::StringLiteral S7, llvm::StringLiteral S8, T Value)
- public StringSwitch<T, R> & Cases(llvm::StringLiteral S0, llvm::StringLiteral S1, llvm::StringLiteral S2, llvm::StringLiteral S3, llvm::StringLiteral S4, llvm::StringLiteral S5, llvm::StringLiteral S6, llvm::StringLiteral S7, T Value)
- public StringSwitch<T, R> & Cases(llvm::StringLiteral S0, llvm::StringLiteral S1, T Value)
- public StringSwitch<T, R> & Cases(llvm::StringLiteral S0, llvm::StringLiteral S1, llvm::StringLiteral S2, T Value)
- public StringSwitch<T, R> & Cases(llvm::StringLiteral S0, llvm::StringLiteral S1, llvm::StringLiteral S2, llvm::StringLiteral S3, T Value)
- public StringSwitch<T, R> & Cases(llvm::StringLiteral S0, llvm::StringLiteral S1, llvm::StringLiteral S2, llvm::StringLiteral S3, llvm::StringLiteral S4, T Value)
- public StringSwitch<T, R> & Cases(llvm::StringLiteral S0, llvm::StringLiteral S1, llvm::StringLiteral S2, llvm::StringLiteral S3, llvm::StringLiteral S4, llvm::StringLiteral S5, T Value)
- public StringSwitch<T, R> & Cases(llvm::StringLiteral S0, llvm::StringLiteral S1, llvm::StringLiteral S2, llvm::StringLiteral S3, llvm::StringLiteral S4, llvm::StringLiteral S5, llvm::StringLiteral S6, T Value)
- public StringSwitch<T, R> & CasesLower(llvm::StringLiteral S0, llvm::StringLiteral S1, llvm::StringLiteral S2, T Value)
- public StringSwitch<T, R> & CasesLower(llvm::StringLiteral S0, llvm::StringLiteral S1, T Value)
- public StringSwitch<T, R> & CasesLower(llvm::StringLiteral S0, llvm::StringLiteral S1, llvm::StringLiteral S2, llvm::StringLiteral S3, T Value)
- public StringSwitch<T, R> & CasesLower(llvm::StringLiteral S0, llvm::StringLiteral S1, llvm::StringLiteral S2, llvm::StringLiteral S3, llvm::StringLiteral S4, T Value)
- public R Default(T Value)
- public StringSwitch<T, R> & EndsWith(llvm::StringLiteral S, T Value)
- public StringSwitch<T, R> & EndsWithLower(llvm::StringLiteral S, T Value)
- public StringSwitch<T, R> & StartsWith(llvm::StringLiteral S, T Value)
- public StringSwitch<T, R> & StartsWithLower(llvm::StringLiteral S, T Value)
- public StringSwitch<T, R>(const StringSwitch<T, R> &)
- public StringSwitch<T, R>(StringSwitch<T, R> && other)
- public StringSwitch<T, R>(llvm::StringRef S)
- public R operator type-parameter-0-1()
- public ~StringSwitch<T, R>()
Methods
¶StringSwitch<T, R>& Case(llvm::StringLiteral S,
T Value)
StringSwitch<T, R>& Case(llvm::StringLiteral S,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:69
Parameters
- llvm::StringLiteral S
- T Value
¶StringSwitch<T, R>& CaseLower(
llvm::StringLiteral S,
T Value)
StringSwitch<T, R>& CaseLower(
llvm::StringLiteral S,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:142
Parameters
- llvm::StringLiteral S
- T Value
¶StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
llvm::StringLiteral S4,
llvm::StringLiteral S5,
llvm::StringLiteral S6,
llvm::StringLiteral S7,
llvm::StringLiteral S8,
llvm::StringLiteral S9,
T Value)
StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
llvm::StringLiteral S4,
llvm::StringLiteral S5,
llvm::StringLiteral S6,
llvm::StringLiteral S7,
llvm::StringLiteral S8,
llvm::StringLiteral S9,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:134
Parameters
- llvm::StringLiteral S0
- llvm::StringLiteral S1
- llvm::StringLiteral S2
- llvm::StringLiteral S3
- llvm::StringLiteral S4
- llvm::StringLiteral S5
- llvm::StringLiteral S6
- llvm::StringLiteral S7
- llvm::StringLiteral S8
- llvm::StringLiteral S9
- T Value
¶StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
llvm::StringLiteral S4,
llvm::StringLiteral S5,
llvm::StringLiteral S6,
llvm::StringLiteral S7,
llvm::StringLiteral S8,
T Value)
StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
llvm::StringLiteral S4,
llvm::StringLiteral S5,
llvm::StringLiteral S6,
llvm::StringLiteral S7,
llvm::StringLiteral S8,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:127
Parameters
- llvm::StringLiteral S0
- llvm::StringLiteral S1
- llvm::StringLiteral S2
- llvm::StringLiteral S3
- llvm::StringLiteral S4
- llvm::StringLiteral S5
- llvm::StringLiteral S6
- llvm::StringLiteral S7
- llvm::StringLiteral S8
- T Value
¶StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
llvm::StringLiteral S4,
llvm::StringLiteral S5,
llvm::StringLiteral S6,
llvm::StringLiteral S7,
T Value)
StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
llvm::StringLiteral S4,
llvm::StringLiteral S5,
llvm::StringLiteral S6,
llvm::StringLiteral S7,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:121
Parameters
- llvm::StringLiteral S0
- llvm::StringLiteral S1
- llvm::StringLiteral S2
- llvm::StringLiteral S3
- llvm::StringLiteral S4
- llvm::StringLiteral S5
- llvm::StringLiteral S6
- llvm::StringLiteral S7
- T Value
¶StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
T Value)
StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:90
Parameters
- llvm::StringLiteral S0
- llvm::StringLiteral S1
- T Value
¶StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
T Value)
StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:94
Parameters
- llvm::StringLiteral S0
- llvm::StringLiteral S1
- llvm::StringLiteral S2
- T Value
¶StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
T Value)
StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:99
Parameters
- llvm::StringLiteral S0
- llvm::StringLiteral S1
- llvm::StringLiteral S2
- llvm::StringLiteral S3
- T Value
¶StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
llvm::StringLiteral S4,
T Value)
StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
llvm::StringLiteral S4,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:104
Parameters
- llvm::StringLiteral S0
- llvm::StringLiteral S1
- llvm::StringLiteral S2
- llvm::StringLiteral S3
- llvm::StringLiteral S4
- T Value
¶StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
llvm::StringLiteral S4,
llvm::StringLiteral S5,
T Value)
StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
llvm::StringLiteral S4,
llvm::StringLiteral S5,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:109
Parameters
- llvm::StringLiteral S0
- llvm::StringLiteral S1
- llvm::StringLiteral S2
- llvm::StringLiteral S3
- llvm::StringLiteral S4
- llvm::StringLiteral S5
- T Value
¶StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
llvm::StringLiteral S4,
llvm::StringLiteral S5,
llvm::StringLiteral S6,
T Value)
StringSwitch<T, R>& Cases(llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
llvm::StringLiteral S4,
llvm::StringLiteral S5,
llvm::StringLiteral S6,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:115
Parameters
- llvm::StringLiteral S0
- llvm::StringLiteral S1
- llvm::StringLiteral S2
- llvm::StringLiteral S3
- llvm::StringLiteral S4
- llvm::StringLiteral S5
- llvm::StringLiteral S6
- T Value
¶StringSwitch<T, R>& CasesLower(
llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
T Value)
StringSwitch<T, R>& CasesLower(
llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:167
Parameters
- llvm::StringLiteral S0
- llvm::StringLiteral S1
- llvm::StringLiteral S2
- T Value
¶StringSwitch<T, R>& CasesLower(
llvm::StringLiteral S0,
llvm::StringLiteral S1,
T Value)
StringSwitch<T, R>& CasesLower(
llvm::StringLiteral S0,
llvm::StringLiteral S1,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:163
Parameters
- llvm::StringLiteral S0
- llvm::StringLiteral S1
- T Value
¶StringSwitch<T, R>& CasesLower(
llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
T Value)
StringSwitch<T, R>& CasesLower(
llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:172
Parameters
- llvm::StringLiteral S0
- llvm::StringLiteral S1
- llvm::StringLiteral S2
- llvm::StringLiteral S3
- T Value
¶StringSwitch<T, R>& CasesLower(
llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
llvm::StringLiteral S4,
T Value)
StringSwitch<T, R>& CasesLower(
llvm::StringLiteral S0,
llvm::StringLiteral S1,
llvm::StringLiteral S2,
llvm::StringLiteral S3,
llvm::StringLiteral S4,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:177
Parameters
- llvm::StringLiteral S0
- llvm::StringLiteral S1
- llvm::StringLiteral S2
- llvm::StringLiteral S3
- llvm::StringLiteral S4
- T Value
¶R Default(T Value)
R Default(T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:183
Parameters
- T Value
¶StringSwitch<T, R>& EndsWith(
llvm::StringLiteral S,
T Value)
StringSwitch<T, R>& EndsWith(
llvm::StringLiteral S,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:76
Parameters
- llvm::StringLiteral S
- T Value
¶StringSwitch<T, R>& EndsWithLower(
llvm::StringLiteral S,
T Value)
StringSwitch<T, R>& EndsWithLower(
llvm::StringLiteral S,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:149
Parameters
- llvm::StringLiteral S
- T Value
¶StringSwitch<T, R>& StartsWith(
llvm::StringLiteral S,
T Value)
StringSwitch<T, R>& StartsWith(
llvm::StringLiteral S,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:83
Parameters
- llvm::StringLiteral S
- T Value
¶StringSwitch<T, R>& StartsWithLower(
llvm::StringLiteral S,
T Value)
StringSwitch<T, R>& StartsWithLower(
llvm::StringLiteral S,
T Value)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:156
Parameters
- llvm::StringLiteral S
- T Value
¶StringSwitch<T, R>(const StringSwitch<T, R>&)
StringSwitch<T, R>(const StringSwitch<T, R>&)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:57
Parameters
- const StringSwitch<T, R>&
¶StringSwitch<T, R>(StringSwitch<T, R>&& other)
StringSwitch<T, R>(StringSwitch<T, R>&& other)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:63
Parameters
- StringSwitch<T, R>&& other
¶StringSwitch<T, R>(llvm::StringRef S)
StringSwitch<T, R>(llvm::StringRef S)
Declared at: llvm/include/llvm/ADT/StringSwitch.h:53
Parameters
¶R operator type - parameter - 0 - 1()
R operator type - parameter - 0 - 1()
Declared at: llvm/include/llvm/ADT/StringSwitch.h:190
¶~StringSwitch<T, R>()
~StringSwitch<T, R>()
Declared at: llvm/include/llvm/ADT/StringSwitch.h:66