15c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie//===-- None.h - Simple null value for implicit construction ------*- C++ -*-=//
25c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie//
35c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie//                     The LLVM Compiler Infrastructure
45c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie//
55c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie// This file is distributed under the University of Illinois Open Source
65c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie// License. See LICENSE.TXT for details.
75c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie//
85c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie//===----------------------------------------------------------------------===//
95c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie//
107f838bbe450a28aba8769550a78219d3109c4a4eDavid Blaikie//  This file provides None, an enumerator for use in implicit constructors
115c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie//  of various (usually templated) types to make such construction more
125c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie//  terse.
135c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie//
145c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie//===----------------------------------------------------------------------===//
155c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie
165c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie#ifndef LLVM_ADT_NONE_H
175c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie#define LLVM_ADT_NONE_H
185c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie
195c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikienamespace llvm {
205c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie/// \brief A simple null object to allow implicit construction of Optional<T>
215c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie/// and similar types without having to spell out the specialization's name.
22ebe69fe11e48d322045d5949c83283927a0d790bStephen Hinesenum class NoneType { None };
23ebe69fe11e48d322045d5949c83283927a0d790bStephen Hinesconst NoneType None = None;
245c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie}
255c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie
265c43245bf459c77077b607e1b55e6928cfbe464eDavid Blaikie#endif
27