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