]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/include/llvm/ADT/None.h
Merge clang 7.0.1 and several follow-up changes
[FreeBSD/FreeBSD.git] / contrib / llvm / include / llvm / ADT / None.h
1 //===-- None.h - Simple null value for implicit construction ------*- 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 //  This file provides None, an enumerator for use in implicit constructors
11 //  of various (usually templated) types to make such construction more
12 //  terse.
13 //
14 //===----------------------------------------------------------------------===//
15
16 #ifndef LLVM_ADT_NONE_H
17 #define LLVM_ADT_NONE_H
18
19 namespace llvm {
20 /// A simple null object to allow implicit construction of Optional<T>
21 /// and similar types without having to spell out the specialization's name.
22 // (constant value 1 in an attempt to workaround MSVC build issue... )
23 enum class NoneType { None = 1 };
24 const NoneType None = NoneType::None;
25 }
26
27 #endif