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:42

Templates

T
R = T

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)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:67

Parameters

llvm::StringLiteral S
T Value

StringSwitch<T, R>& CaseLower(
    llvm::StringLiteral S,
    T Value)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:140

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)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:132

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)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:125

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)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:119

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)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:88

Parameters

llvm::StringLiteral S0
llvm::StringLiteral S1
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:92

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)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:97

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)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:102

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)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:107

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)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:113

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)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:165

Parameters

llvm::StringLiteral S0
llvm::StringLiteral S1
llvm::StringLiteral S2
T Value

StringSwitch<T, R>& CasesLower(
    llvm::StringLiteral S0,
    llvm::StringLiteral S1,
    T Value)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:161

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)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:170

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)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:175

Parameters

llvm::StringLiteral S0
llvm::StringLiteral S1
llvm::StringLiteral S2
llvm::StringLiteral S3
llvm::StringLiteral S4
T Value

R Default(T Value)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:181

Parameters

T Value

StringSwitch<T, R>& EndsWith(
    llvm::StringLiteral S,
    T Value)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:74

Parameters

llvm::StringLiteral S
T Value

StringSwitch<T, R>& EndsWithLower(
    llvm::StringLiteral S,
    T Value)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:147

Parameters

llvm::StringLiteral S
T Value

StringSwitch<T, R>& StartsWith(
    llvm::StringLiteral S,
    T Value)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:81

Parameters

llvm::StringLiteral S
T Value

StringSwitch<T, R>& StartsWithLower(
    llvm::StringLiteral S,
    T Value)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:154

Parameters

llvm::StringLiteral S
T Value

StringSwitch<T, R>(const StringSwitch<T, R>&)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:55

Parameters

const StringSwitch<T, R>&

StringSwitch<T, R>(StringSwitch<T, R>&& other)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:61

Parameters

StringSwitch<T, R>&& other

StringSwitch<T, R>(llvm::StringRef S)

Declared at: llvm/include/llvm/ADT/StringSwitch.h:51

Parameters

llvm::StringRef S

R operator type - parameter - 0 - 1()

Declared at: llvm/include/llvm/ADT/StringSwitch.h:188

~StringSwitch<T, R>()

Declared at: llvm/include/llvm/ADT/StringSwitch.h:64