⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 functionbuilder.h

📁 cint...昨天看到有个c++解释器,叫CINT,down下来一用,很爽,推荐大家也去看一看。 相信不少朋友们早就知道这个东西了
💻 H
字号:
// @(#)root/reflex:$Name:  $:$Id: FunctionBuilder.h,v 1.8 2006/07/05 07:09:08 roiser Exp $// Author: Stefan Roiser 2004// Copyright CERN, CH-1211 Geneva 23, 2004-2006, All rights reserved.//// Permission to use, copy, modify, and distribute this software for any// purpose is hereby granted without fee, provided that this copyright and// permissions notice appear in all copies and derivatives.//// This software is provided "as is" without express or implied warranty.#ifndef ROOT_Reflex_FunctionBuilder#define ROOT_Reflex_FunctionBuilder// Include files#include "Reflex/Reflex.h"namespace ROOT {   namespace Reflex {        // forward declarations      class FunctionMember;      class Type;      /**        * @class FunctionBuilder FunctionBuilder.h Reflex/Builder/FunctionBuilder.h       * @author Pere Mato       * @date 1/8/2004       * @ingroup RefBld       */      class RFLX_API FunctionBuilder {      public:             /** constructor */         FunctionBuilder( const Type & typ,                          const char * nam,                          StubFunction stubFP,                          void * stubCtx,                          const char * params,                           unsigned char modifiers );               /** destructor */         virtual ~FunctionBuilder();         /** AddProperty will add a PropertyNth           * @param  key the PropertyNth key          * @param  value the value of the PropertyNth          * @return a reference to the building class          */         FunctionBuilder & AddProperty( const char * key,                                         Any value );         FunctionBuilder & AddProperty( const char * key,                                        const char * value );      private:         /** function MemberAt */         Member fFunction;      }; // class FunctionBuilder          /**        * @class FunctionBuilderImpl FunctionBuilder.h Reflex/Builder/FunctionBuilder.h       * @author Pere Mato       * @date 3/8/2004       * @ingroup RefBld       */      class RFLX_API FunctionBuilderImpl {          public:               /** constructor */         FunctionBuilderImpl( const char * nam,                               const Type & typ,                              StubFunction stubFP,                              void * stubCtx,                              const char * params,                               unsigned char modifiers = 0 );                                   /** destructor */         ~FunctionBuilderImpl();         /** AddProperty will add a PropertyNth           * @param  key the PropertyNth key          * @param  value the value of the PropertyNth          * @return a reference to the building class          */         void AddProperty( const char * key,                            Any value );         void AddProperty( const char * key,                            const char * value );         /** string containing the union information */         Member fFunction;      }; // class FunctionBuilderImpl      /**        * @class FunctionBuilderT FunctionBuilder.h Reflex/Builder/FunctionBuilder.h       * @author Pere Mato       * @date 1/8/2004       * @ingroup RefBld       */      template < typename F > class FunctionBuilderT {      public:             /** constructor */         FunctionBuilderT( const char * nam,                           StubFunction stubFP,                           void * stubCtx,                           const char * params,                            unsigned char modifiers );               /** destructor */         virtual ~FunctionBuilderT() {}               /** AddProperty will add a PropertyNth           * @param  key the PropertyNth key          * @param  value the value of the PropertyNth          * @return a reference to the building class          */         template < typename P >            FunctionBuilderT & AddProperty( const char * key, P value );      private:         /** function builder implemenation */         FunctionBuilderImpl fFunctionBuilderImpl;      }; //class FunctionBuilderT   } // namespace Reflex} // namespace ROOT#include "Reflex/Builder/TypeBuilder.h"//-------------------------------------------------------------------------------template < typename  F > inline ROOT::Reflex::FunctionBuilderT<F>::FunctionBuilderT( const char * nam,                                                             StubFunction stubFP,                                                            void * stubCtx,                                                            const char * params,                                                             unsigned char modifiers )//-------------------------------------------------------------------------------   : fFunctionBuilderImpl( nam,                           FunctionDistiller<F>::Get(),                           stubFP,                           stubCtx,                           params,                           modifiers ) { }      //-------------------------------------------------------------------------------template <  typename F > template < typename P >inline ROOT::Reflex::FunctionBuilderT<F> & ROOT::Reflex::FunctionBuilderT<F>::AddProperty( const char * key,                                                 P value )//-------------------------------------------------------------------------------{    fFunctionBuilderImpl.AddProperty(key , value);   return * this;}#endif // ROOT_Reflex_FunctionBuilder

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -