LLVM  4.0.0
OptSpecifier.h
Go to the documentation of this file.
1 //===--- OptSpecifier.h - Option Specifiers ---------------------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef LLVM_OPTION_OPTSPECIFIER_H
11 #define LLVM_OPTION_OPTSPECIFIER_H
12 
13 #include "llvm/Support/Compiler.h"
14 
15 namespace llvm {
16 namespace opt {
17  class Option;
18 
19  /// OptSpecifier - Wrapper class for abstracting references to option IDs.
20  class OptSpecifier {
21  unsigned ID;
22 
23  private:
24  explicit OptSpecifier(bool) = delete;
25 
26  public:
27  OptSpecifier() : ID(0) {}
28  /*implicit*/ OptSpecifier(unsigned ID) : ID(ID) {}
29  /*implicit*/ OptSpecifier(const Option *Opt);
30 
31  bool isValid() const { return ID != 0; }
32 
33  unsigned getID() const { return ID; }
34 
35  bool operator==(OptSpecifier Opt) const { return ID == Opt.getID(); }
36  bool operator!=(OptSpecifier Opt) const { return !(*this == Opt); }
37  };
38 }
39 }
40 
41 #endif
Option - Abstract representation for a single form of driver argument.
Definition: Option.h:44
unsigned getID() const
Definition: OptSpecifier.h:33
bool operator==(OptSpecifier Opt) const
Definition: OptSpecifier.h:35
OptSpecifier(unsigned ID)
Definition: OptSpecifier.h:28
bool operator!=(OptSpecifier Opt) const
Definition: OptSpecifier.h:36
OptSpecifier - Wrapper class for abstracting references to option IDs.
Definition: OptSpecifier.h:20
bool isValid() const
Definition: OptSpecifier.h:31