// @(#)root/meta:
// Author: Philippe Canal November 2013.

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TFunctionTemplate
#define ROOT_TFunctionTemplate


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TFunctionTemplate                                                    //
//                                                                      //
// Dictionary for function template                                     //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TDictionary
#include "TDictionary.h"
#endif

class TFunctionTemplate : public TDictionary {
protected:
   FuncTempInfo_t *fInfo;  // pointer to Interpreter function template info
   TClass         *fClass; //pointer to the class (if any).

public:
   TFunctionTemplate(FuncTempInfo_t *info, TClass *cl);
   TFunctionTemplate(const TFunctionTemplate &orig);
   TFunctionTemplate& operator=(const TFunctionTemplate &rhs);
   virtual            ~TFunctionTemplate();
   virtual TObject   *Clone(const char *newname="") const;

   DeclId_t            GetDeclId() const;
   UInt_t              GetTemplateNargs() const;
   UInt_t              GetTemplateMinReqArgs() const;

   virtual Bool_t      IsValid();
   Long_t              Property() const;

   virtual bool        Update(FuncTempInfo_t *info);

   ClassDef(TFunctionTemplate,0)  //Dictionary for function template

};

#endif
 TFunctionTemplate.h:1
 TFunctionTemplate.h:2
 TFunctionTemplate.h:3
 TFunctionTemplate.h:4
 TFunctionTemplate.h:5
 TFunctionTemplate.h:6
 TFunctionTemplate.h:7
 TFunctionTemplate.h:8
 TFunctionTemplate.h:9
 TFunctionTemplate.h:10
 TFunctionTemplate.h:11
 TFunctionTemplate.h:12
 TFunctionTemplate.h:13
 TFunctionTemplate.h:14
 TFunctionTemplate.h:15
 TFunctionTemplate.h:16
 TFunctionTemplate.h:17
 TFunctionTemplate.h:18
 TFunctionTemplate.h:19
 TFunctionTemplate.h:20
 TFunctionTemplate.h:21
 TFunctionTemplate.h:22
 TFunctionTemplate.h:23
 TFunctionTemplate.h:24
 TFunctionTemplate.h:25
 TFunctionTemplate.h:26
 TFunctionTemplate.h:27
 TFunctionTemplate.h:28
 TFunctionTemplate.h:29
 TFunctionTemplate.h:30
 TFunctionTemplate.h:31
 TFunctionTemplate.h:32
 TFunctionTemplate.h:33
 TFunctionTemplate.h:34
 TFunctionTemplate.h:35
 TFunctionTemplate.h:36
 TFunctionTemplate.h:37
 TFunctionTemplate.h:38
 TFunctionTemplate.h:39
 TFunctionTemplate.h:40
 TFunctionTemplate.h:41
 TFunctionTemplate.h:42
 TFunctionTemplate.h:43
 TFunctionTemplate.h:44
 TFunctionTemplate.h:45
 TFunctionTemplate.h:46
 TFunctionTemplate.h:47
 TFunctionTemplate.h:48
 TFunctionTemplate.h:49
 TFunctionTemplate.h:50
 TFunctionTemplate.h:51
 TFunctionTemplate.h:52
 TFunctionTemplate.h:53