1234287Sdim//===--- Lambda.h - Types for C++ Lambdas -----------------------*- C++ -*-===//
2234287Sdim//
3234287Sdim//                     The LLVM Compiler Infrastructure
4234287Sdim//
5234287Sdim// This file is distributed under the University of Illinois Open Source
6234287Sdim// License. See LICENSE.TXT for details.
7234287Sdim//
8234287Sdim//===----------------------------------------------------------------------===//
9239462Sdim///
10239462Sdim/// \file
11239462Sdim/// \brief  Defines several types used to describe C++ lambda expressions
12239462Sdim/// that are shared between the parser and AST.
13239462Sdim///
14234287Sdim//===----------------------------------------------------------------------===//
15234287Sdim
16234287Sdim
17234287Sdim#ifndef LLVM_CLANG_BASIC_LAMBDA_H
18234287Sdim#define LLVM_CLANG_BASIC_LAMBDA_H
19234287Sdim
20234287Sdimnamespace clang {
21234287Sdim
22239462Sdim/// \brief The default, if any, capture method for a lambda expression.
23234287Sdimenum LambdaCaptureDefault {
24234287Sdim  LCD_None,
25234287Sdim  LCD_ByCopy,
26234287Sdim  LCD_ByRef
27234287Sdim};
28234287Sdim
29239462Sdim/// \brief The different capture forms in a lambda introducer: 'this' or a
30239462Sdim/// copied or referenced variable.
31234287Sdimenum LambdaCaptureKind {
32234287Sdim  LCK_This,
33234287Sdim  LCK_ByCopy,
34234287Sdim  LCK_ByRef
35234287Sdim};
36234287Sdim
37234287Sdim} // end namespace clang
38234287Sdim
39234287Sdim#endif // LLVM_CLANG_BASIC_LAMBDA_H
40