17ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens//===-- None.h - Simple null value for implicit construction ------*- C++ -*-=// 27ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens// 37ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens// The LLVM Compiler Infrastructure 47ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens// 57ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens// This file is distributed under the University of Illinois Open Source 67ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens// License. See LICENSE.TXT for details. 77ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens// 87ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens//===----------------------------------------------------------------------===// 97ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens// 107ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens// This file provides None, an enumerator for use in implicit constructors 117ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens// of various (usually templated) types to make such construction more 127ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens// terse. 137ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens// 147ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens//===----------------------------------------------------------------------===// 157ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens 167ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens#ifndef LLVM_ADT_NONE_H 177ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens#define LLVM_ADT_NONE_H 187ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens 197ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capensnamespace llvm { 207ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens/// \brief A simple null object to allow implicit construction of Optional<T> 217ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens/// and similar types without having to spell out the specialization's name. 227ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capensenum class NoneType { None }; 237ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capensconst NoneType None = None; 247ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens} 257ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens 267ad046f5968d4709c3c68d165387d13f1da7bab6Nicolas Capens#endif 27