ROOT logo
// @(#)root/reflex:$Id: MemberTemplate.h 29288 2009-07-01 13:03:35Z axel $
// 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 Reflex_MemberTemplate
#define Reflex_MemberTemplate

// Include files
#include "Reflex/Kernel.h"


namespace Reflex {
// forward declarations
class MemberTemplateName;
class Member;

/**
 * @class MemberTemplate MemberTemplate.h Reflex/MemberTemplate.h
 * @author Stefan Roiser
 * @date 2005-02-03
 * @ingroup Ref
 */
class RFLX_API MemberTemplate {
   friend class OwnedMemberTemplate;

public:
   /** default constructor */
   MemberTemplate(const MemberTemplateName * memberTemplateName = 0);


   /** copy constructor */
   MemberTemplate(const MemberTemplate &rh);


   /** destructor */
   ~MemberTemplate();


   /**
    * operator bool will return true if the member template is resolved
    * @return true if member template is resolved
    */
   operator bool() const;


   /**
    * operator == will return true if two member templates are the same
    * @return true if member templates match
    */
   bool operator ==(const MemberTemplate& rh) const;


   /**
    * ByName will return a member template corresponding to the argument name
    * @param member template name to lookup
    * @param nTemplateParams looks up the template family with this number of template parameters
    *        if it is set to 0, the first occurence of the template family name will be returned
    * @return corresponding member template to name
    */
   static MemberTemplate ByName(const std::string& name,
                                size_t nTemplateParams = 0);


   /**
    * Id will return a memory address which is a unique id for this member template
    * @return unique id of this member template
    */
   void* Id() const;


   /**
    * MemberTemplateAt will return the nth member template defined
    * @param nth member template
    * @return nth member template
    */
   static MemberTemplate MemberTemplateAt(size_t nth);


   /**
    * MemberTemplateSize will return the number of member templates defined
    * @return number of defined member templates
    */
   static size_t MemberTemplateSize();


   /**
    * MemberTemplate_Begin returns the begin iterator of the member template container
    * @return begin iterator of member template container
    */
   static MemberTemplate_Iterator MemberTemplate_Begin();


   /**
    * MemberTemplate_End returns the end iterator of the member template container
    * @return end iterator of member template container
    */
   static MemberTemplate_Iterator MemberTemplate_End();


   /**
    * MemberTemplate_Rbegin returns the rbegin iterator of the member template container
    * @return rbegin iterator of member template container
    */
   static Reverse_MemberTemplate_Iterator MemberTemplate_RBegin();


   /**
    * MemberTemplate_Rend returns the rend iterator of the member template container
    * @return rend iterator of member template container
    */
   static Reverse_MemberTemplate_Iterator MemberTemplate_REnd();


   /**
    * Name will return the name of the template family and a list of
    * all currently available instantiations
    * @return template family name with all instantiantion
    */
   std::string Name(unsigned int mod = 0) const;


   /**
    * TemplateInstance_Begin returns the begin iterator of the instance container
    * @return the begin iterator of the instance container
    */
   Member_Iterator TemplateInstance_Begin() const;


   /**
    * TemplateInstance_End returns the end iterator of the instance container
    * @return the end iterator of the instance container
    */
   Member_Iterator TemplateInstance_End() const;


   /**
    * TemplateInstance_RBegin returns the rbegin iterator of the instance container
    * @return the rbegin iterator of the instance container
    */
   Reverse_Member_Iterator TemplateInstance_RBegin() const;


   /**
    * TemplateInstance_Rend returns the rend iterator of the instance container
    * @return the rend iterator of the instance container
    */
   Reverse_Member_Iterator TemplateInstance_REnd() const;


   /**
    * TemplateInstanceAt will return the nth template instantion
    * @param  nth template instantion
    * @return pointer to nth template instantion
    */
   Member TemplateInstanceAt(size_t nth) const;


   /**
    * instantionSize will return the number of template instantions for
    * this template family
    * @return number of template instantions
    */
   size_t TemplateInstanceSize() const;


   /**
    * TemplateParameterDefaultAt will return the nth FunctionParameterAt default value as string
    * @param nth template FunctionParameterAt
    * @return default value of nth template FunctionParameterAt
    */
   std::string TemplateParameterDefaultAt(size_t nth) const;


   /**
    * TemplateParameterDefault_Begin returns the begin of the container of template parameter default names
    * @return begin of container of template parameter default names
    */
   StdString_Iterator TemplateParameterDefault_Begin() const;


   /**
    * TemplateParameterDefault_End returns the end of the container of template parameter default names
    * @return end of container of template parameter default names
    */
   StdString_Iterator TemplateParameterDefault_End() const;


   /**
    * TemplateParameterDefault_RBegin returns the reverse begin of the container of template parameter default names
    * @return reverse begin of container of template parameter default names
    */
   Reverse_StdString_Iterator TemplateParameterDefault_RBegin() const;


   /**
    * TemplateParameterDefault_REnd returns the reverse end of the container of template parameter default names
    * @return reverse end of container of template parameter default names
    */
   Reverse_StdString_Iterator TemplateParameterDefault_REnd() const;


   /**
    * TemplateParameterNameAt will the Name of the nth FunctionParameterAt
    * @param  nth template FunctionParameterAt
    * @return Name of nth template FunctionParameterAt
    */
   std::string TemplateParameterNameAt(size_t nth) const;


   /**
    * TemplateParameterName_Begin returns the begin of the container of template parameter names
    * @return begin of container of template parameter names
    */
   StdString_Iterator TemplateParameterName_Begin() const;


   /**
    * TemplateParameterName_End returns the end of the container of template parameter names
    * @return end of container of template parameter names
    */
   StdString_Iterator TemplateParameterName_End() const;


   /**
    * TemplateParameterName_RBegin returns the reverse begin of the container of template parameter names
    * @return reverse begin of container of template parameter names
    */
   Reverse_StdString_Iterator TemplateParameterName_RBegin() const;


   /**
    * TemplateParameterName_REnd returns the reverse end of the container of template parameter names
    * @return reverse end of container of template parameter names
    */
   Reverse_StdString_Iterator TemplateParameterName_REnd() const;


   /**
    * TemplateParameterSize will return the number of template parameters
    * @return number of template parameters
    */
   size_t TemplateParameterSize() const;

public:
   /**
    * AddTemplateInstance adds one TemplateInstanceAt of the template to the local container
    * @param templateInstance the template TemplateInstanceAt
    */
   void AddTemplateInstance(const Member& templateInstance) const;

private:
   /**
    * pointer to the member template implementation
    * @label member template name
    * @link aggregation
    * @clientCardinality 1
    * @supplierCardinality 1
    */
   const MemberTemplateName* fMemberTemplateName;

};    // class MemberTemplate

} // namespace Reflex

#include "Reflex/internal/MemberTemplateName.h"
#include "Reflex/internal/MemberTemplateImpl.h"

//-------------------------------------------------------------------------------
inline Reflex::MemberTemplate::MemberTemplate(const MemberTemplateName* memberTemplateName)
//-------------------------------------------------------------------------------
   : fMemberTemplateName(memberTemplateName) {
}


//-------------------------------------------------------------------------------
inline Reflex::MemberTemplate::MemberTemplate(const MemberTemplate& rh)
//-------------------------------------------------------------------------------
   : fMemberTemplateName(rh.fMemberTemplateName) {
}


//-------------------------------------------------------------------------------
inline Reflex::MemberTemplate::~MemberTemplate() {
}

//-------------------------------------------------------------------------------


//-------------------------------------------------------------------------------
inline
Reflex::MemberTemplate::operator bool() const {
//-------------------------------------------------------------------------------
   if (this->fMemberTemplateName && this->fMemberTemplateName->fMemberTemplateImpl) {
      return true;
   }
   return false;
}


//-------------------------------------------------------------------------------
inline bool
Reflex::MemberTemplate::operator ==(const MemberTemplate& rh) const {
//-------------------------------------------------------------------------------
   return fMemberTemplateName == rh.fMemberTemplateName;
}


//-------------------------------------------------------------------------------
inline void*
Reflex::MemberTemplate::Id() const {
//-------------------------------------------------------------------------------
   return (void*) fMemberTemplateName;
}


//-------------------------------------------------------------------------------
inline size_t
Reflex::MemberTemplate::MemberTemplateSize() {
//-------------------------------------------------------------------------------
   return MemberTemplateName::MemberTemplateSize();
}


//-------------------------------------------------------------------------------
inline size_t
Reflex::MemberTemplate::TemplateInstanceSize() const {
//-------------------------------------------------------------------------------
   if (*this) {
      return fMemberTemplateName->fMemberTemplateImpl->TemplateInstanceSize();
   }
   return 0;
}


//-------------------------------------------------------------------------------
inline size_t
Reflex::MemberTemplate::TemplateParameterSize() const {
//-------------------------------------------------------------------------------
   if (*this) {
      return fMemberTemplateName->fMemberTemplateImpl->TemplateParameterSize();
   }
   return 0;
}


//-------------------------------------------------------------------------------
inline std::string
Reflex::MemberTemplate::TemplateParameterDefaultAt(size_t nth) const {
//-------------------------------------------------------------------------------
   if (*this) {
      return fMemberTemplateName->fMemberTemplateImpl->TemplateParameterDefaultAt(nth);
   }
   return "";
}


//-------------------------------------------------------------------------------
inline Reflex::StdString_Iterator
Reflex::MemberTemplate::TemplateParameterDefault_Begin() const {
//-------------------------------------------------------------------------------
   if (*this) {
      return fMemberTemplateName->fMemberTemplateImpl->TemplateParameterDefault_Begin();
   }
   return Dummy::StdStringCont().begin();
}


//-------------------------------------------------------------------------------
inline Reflex::StdString_Iterator
Reflex::MemberTemplate::TemplateParameterDefault_End() const {
//-------------------------------------------------------------------------------
   if (*this) {
      return fMemberTemplateName->fMemberTemplateImpl->TemplateParameterDefault_End();
   }
   return Dummy::StdStringCont().end();
}


//-------------------------------------------------------------------------------
inline Reflex::Reverse_StdString_Iterator
Reflex::MemberTemplate::TemplateParameterDefault_RBegin() const {
//-------------------------------------------------------------------------------
   if (*this) {
      return fMemberTemplateName->fMemberTemplateImpl->TemplateParameterDefault_RBegin();
   }
   return Dummy::StdStringCont().rbegin();
}


//-------------------------------------------------------------------------------
inline Reflex::Reverse_StdString_Iterator
Reflex::MemberTemplate::TemplateParameterDefault_REnd() const {
//-------------------------------------------------------------------------------
   if (*this) {
      return fMemberTemplateName->fMemberTemplateImpl->TemplateParameterDefault_REnd();
   }
   return Dummy::StdStringCont().rend();
}


//-------------------------------------------------------------------------------
inline std::string
Reflex::MemberTemplate::TemplateParameterNameAt(size_t nth) const {
//-------------------------------------------------------------------------------
   if (*this) {
      return fMemberTemplateName->fMemberTemplateImpl->TemplateParameterNameAt(nth);
   }
   return "";
}


//-------------------------------------------------------------------------------
inline Reflex::StdString_Iterator
Reflex::MemberTemplate::TemplateParameterName_Begin() const {
//-------------------------------------------------------------------------------
   if (*this) {
      return fMemberTemplateName->fMemberTemplateImpl->TemplateParameterName_Begin();
   }
   return Dummy::StdStringCont().begin();
}


//-------------------------------------------------------------------------------
inline Reflex::StdString_Iterator
Reflex::MemberTemplate::TemplateParameterName_End() const {
//-------------------------------------------------------------------------------
   if (*this) {
      return fMemberTemplateName->fMemberTemplateImpl->TemplateParameterName_End();
   }
   return Dummy::StdStringCont().end();
}


//-------------------------------------------------------------------------------
inline Reflex::Reverse_StdString_Iterator
Reflex::MemberTemplate::TemplateParameterName_RBegin() const {
//-------------------------------------------------------------------------------
   if (*this) {
      return fMemberTemplateName->fMemberTemplateImpl->TemplateParameterName_RBegin();
   }
   return Dummy::StdStringCont().rbegin();
}


//-------------------------------------------------------------------------------
inline Reflex::Reverse_StdString_Iterator
Reflex::MemberTemplate::TemplateParameterName_REnd() const {
//-------------------------------------------------------------------------------
   if (*this) {
      return fMemberTemplateName->fMemberTemplateImpl->TemplateParameterName_REnd();
   }
   return Dummy::StdStringCont().rend();
}


#endif // Reflex_MemberTemplate
 MemberTemplate.h:1
 MemberTemplate.h:2
 MemberTemplate.h:3
 MemberTemplate.h:4
 MemberTemplate.h:5
 MemberTemplate.h:6
 MemberTemplate.h:7
 MemberTemplate.h:8
 MemberTemplate.h:9
 MemberTemplate.h:10
 MemberTemplate.h:11
 MemberTemplate.h:12
 MemberTemplate.h:13
 MemberTemplate.h:14
 MemberTemplate.h:15
 MemberTemplate.h:16
 MemberTemplate.h:17
 MemberTemplate.h:18
 MemberTemplate.h:19
 MemberTemplate.h:20
 MemberTemplate.h:21
 MemberTemplate.h:22
 MemberTemplate.h:23
 MemberTemplate.h:24
 MemberTemplate.h:25
 MemberTemplate.h:26
 MemberTemplate.h:27
 MemberTemplate.h:28
 MemberTemplate.h:29
 MemberTemplate.h:30
 MemberTemplate.h:31
 MemberTemplate.h:32
 MemberTemplate.h:33
 MemberTemplate.h:34
 MemberTemplate.h:35
 MemberTemplate.h:36
 MemberTemplate.h:37
 MemberTemplate.h:38
 MemberTemplate.h:39
 MemberTemplate.h:40
 MemberTemplate.h:41
 MemberTemplate.h:42
 MemberTemplate.h:43
 MemberTemplate.h:44
 MemberTemplate.h:45
 MemberTemplate.h:46
 MemberTemplate.h:47
 MemberTemplate.h:48
 MemberTemplate.h:49
 MemberTemplate.h:50
 MemberTemplate.h:51
 MemberTemplate.h:52
 MemberTemplate.h:53
 MemberTemplate.h:54
 MemberTemplate.h:55
 MemberTemplate.h:56
 MemberTemplate.h:57
 MemberTemplate.h:58
 MemberTemplate.h:59
 MemberTemplate.h:60
 MemberTemplate.h:61
 MemberTemplate.h:62
 MemberTemplate.h:63
 MemberTemplate.h:64
 MemberTemplate.h:65
 MemberTemplate.h:66
 MemberTemplate.h:67
 MemberTemplate.h:68
 MemberTemplate.h:69
 MemberTemplate.h:70
 MemberTemplate.h:71
 MemberTemplate.h:72
 MemberTemplate.h:73
 MemberTemplate.h:74
 MemberTemplate.h:75
 MemberTemplate.h:76
 MemberTemplate.h:77
 MemberTemplate.h:78
 MemberTemplate.h:79
 MemberTemplate.h:80
 MemberTemplate.h:81
 MemberTemplate.h:82
 MemberTemplate.h:83
 MemberTemplate.h:84
 MemberTemplate.h:85
 MemberTemplate.h:86
 MemberTemplate.h:87
 MemberTemplate.h:88
 MemberTemplate.h:89
 MemberTemplate.h:90
 MemberTemplate.h:91
 MemberTemplate.h:92
 MemberTemplate.h:93
 MemberTemplate.h:94
 MemberTemplate.h:95
 MemberTemplate.h:96
 MemberTemplate.h:97
 MemberTemplate.h:98
 MemberTemplate.h:99
 MemberTemplate.h:100
 MemberTemplate.h:101
 MemberTemplate.h:102
 MemberTemplate.h:103
 MemberTemplate.h:104
 MemberTemplate.h:105
 MemberTemplate.h:106
 MemberTemplate.h:107
 MemberTemplate.h:108
 MemberTemplate.h:109
 MemberTemplate.h:110
 MemberTemplate.h:111
 MemberTemplate.h:112
 MemberTemplate.h:113
 MemberTemplate.h:114
 MemberTemplate.h:115
 MemberTemplate.h:116
 MemberTemplate.h:117
 MemberTemplate.h:118
 MemberTemplate.h:119
 MemberTemplate.h:120
 MemberTemplate.h:121
 MemberTemplate.h:122
 MemberTemplate.h:123
 MemberTemplate.h:124
 MemberTemplate.h:125
 MemberTemplate.h:126
 MemberTemplate.h:127
 MemberTemplate.h:128
 MemberTemplate.h:129
 MemberTemplate.h:130
 MemberTemplate.h:131
 MemberTemplate.h:132
 MemberTemplate.h:133
 MemberTemplate.h:134
 MemberTemplate.h:135
 MemberTemplate.h:136
 MemberTemplate.h:137
 MemberTemplate.h:138
 MemberTemplate.h:139
 MemberTemplate.h:140
 MemberTemplate.h:141
 MemberTemplate.h:142
 MemberTemplate.h:143
 MemberTemplate.h:144
 MemberTemplate.h:145
 MemberTemplate.h:146
 MemberTemplate.h:147
 MemberTemplate.h:148
 MemberTemplate.h:149
 MemberTemplate.h:150
 MemberTemplate.h:151
 MemberTemplate.h:152
 MemberTemplate.h:153
 MemberTemplate.h:154
 MemberTemplate.h:155
 MemberTemplate.h:156
 MemberTemplate.h:157
 MemberTemplate.h:158
 MemberTemplate.h:159
 MemberTemplate.h:160
 MemberTemplate.h:161
 MemberTemplate.h:162
 MemberTemplate.h:163
 MemberTemplate.h:164
 MemberTemplate.h:165
 MemberTemplate.h:166
 MemberTemplate.h:167
 MemberTemplate.h:168
 MemberTemplate.h:169
 MemberTemplate.h:170
 MemberTemplate.h:171
 MemberTemplate.h:172
 MemberTemplate.h:173
 MemberTemplate.h:174
 MemberTemplate.h:175
 MemberTemplate.h:176
 MemberTemplate.h:177
 MemberTemplate.h:178
 MemberTemplate.h:179
 MemberTemplate.h:180
 MemberTemplate.h:181
 MemberTemplate.h:182
 MemberTemplate.h:183
 MemberTemplate.h:184
 MemberTemplate.h:185
 MemberTemplate.h:186
 MemberTemplate.h:187
 MemberTemplate.h:188
 MemberTemplate.h:189
 MemberTemplate.h:190
 MemberTemplate.h:191
 MemberTemplate.h:192
 MemberTemplate.h:193
 MemberTemplate.h:194
 MemberTemplate.h:195
 MemberTemplate.h:196
 MemberTemplate.h:197
 MemberTemplate.h:198
 MemberTemplate.h:199
 MemberTemplate.h:200
 MemberTemplate.h:201
 MemberTemplate.h:202
 MemberTemplate.h:203
 MemberTemplate.h:204
 MemberTemplate.h:205
 MemberTemplate.h:206
 MemberTemplate.h:207
 MemberTemplate.h:208
 MemberTemplate.h:209
 MemberTemplate.h:210
 MemberTemplate.h:211
 MemberTemplate.h:212
 MemberTemplate.h:213
 MemberTemplate.h:214
 MemberTemplate.h:215
 MemberTemplate.h:216
 MemberTemplate.h:217
 MemberTemplate.h:218
 MemberTemplate.h:219
 MemberTemplate.h:220
 MemberTemplate.h:221
 MemberTemplate.h:222
 MemberTemplate.h:223
 MemberTemplate.h:224
 MemberTemplate.h:225
 MemberTemplate.h:226
 MemberTemplate.h:227
 MemberTemplate.h:228
 MemberTemplate.h:229
 MemberTemplate.h:230
 MemberTemplate.h:231
 MemberTemplate.h:232
 MemberTemplate.h:233
 MemberTemplate.h:234
 MemberTemplate.h:235
 MemberTemplate.h:236
 MemberTemplate.h:237
 MemberTemplate.h:238
 MemberTemplate.h:239
 MemberTemplate.h:240
 MemberTemplate.h:241
 MemberTemplate.h:242
 MemberTemplate.h:243
 MemberTemplate.h:244
 MemberTemplate.h:245
 MemberTemplate.h:246
 MemberTemplate.h:247
 MemberTemplate.h:248
 MemberTemplate.h:249
 MemberTemplate.h:250
 MemberTemplate.h:251
 MemberTemplate.h:252
 MemberTemplate.h:253
 MemberTemplate.h:254
 MemberTemplate.h:255
 MemberTemplate.h:256
 MemberTemplate.h:257
 MemberTemplate.h:258
 MemberTemplate.h:259
 MemberTemplate.h:260
 MemberTemplate.h:261
 MemberTemplate.h:262
 MemberTemplate.h:263
 MemberTemplate.h:264
 MemberTemplate.h:265
 MemberTemplate.h:266
 MemberTemplate.h:267
 MemberTemplate.h:268
 MemberTemplate.h:269
 MemberTemplate.h:270
 MemberTemplate.h:271
 MemberTemplate.h:272
 MemberTemplate.h:273
 MemberTemplate.h:274
 MemberTemplate.h:275
 MemberTemplate.h:276
 MemberTemplate.h:277
 MemberTemplate.h:278
 MemberTemplate.h:279
 MemberTemplate.h:280
 MemberTemplate.h:281
 MemberTemplate.h:282
 MemberTemplate.h:283
 MemberTemplate.h:284
 MemberTemplate.h:285
 MemberTemplate.h:286
 MemberTemplate.h:287
 MemberTemplate.h:288
 MemberTemplate.h:289
 MemberTemplate.h:290
 MemberTemplate.h:291
 MemberTemplate.h:292
 MemberTemplate.h:293
 MemberTemplate.h:294
 MemberTemplate.h:295
 MemberTemplate.h:296
 MemberTemplate.h:297
 MemberTemplate.h:298
 MemberTemplate.h:299
 MemberTemplate.h:300
 MemberTemplate.h:301
 MemberTemplate.h:302
 MemberTemplate.h:303
 MemberTemplate.h:304
 MemberTemplate.h:305
 MemberTemplate.h:306
 MemberTemplate.h:307
 MemberTemplate.h:308
 MemberTemplate.h:309
 MemberTemplate.h:310
 MemberTemplate.h:311
 MemberTemplate.h:312
 MemberTemplate.h:313
 MemberTemplate.h:314
 MemberTemplate.h:315
 MemberTemplate.h:316
 MemberTemplate.h:317
 MemberTemplate.h:318
 MemberTemplate.h:319
 MemberTemplate.h:320
 MemberTemplate.h:321
 MemberTemplate.h:322
 MemberTemplate.h:323
 MemberTemplate.h:324
 MemberTemplate.h:325
 MemberTemplate.h:326
 MemberTemplate.h:327
 MemberTemplate.h:328
 MemberTemplate.h:329
 MemberTemplate.h:330
 MemberTemplate.h:331
 MemberTemplate.h:332
 MemberTemplate.h:333
 MemberTemplate.h:334
 MemberTemplate.h:335
 MemberTemplate.h:336
 MemberTemplate.h:337
 MemberTemplate.h:338
 MemberTemplate.h:339
 MemberTemplate.h:340
 MemberTemplate.h:341
 MemberTemplate.h:342
 MemberTemplate.h:343
 MemberTemplate.h:344
 MemberTemplate.h:345
 MemberTemplate.h:346
 MemberTemplate.h:347
 MemberTemplate.h:348
 MemberTemplate.h:349
 MemberTemplate.h:350
 MemberTemplate.h:351
 MemberTemplate.h:352
 MemberTemplate.h:353
 MemberTemplate.h:354
 MemberTemplate.h:355
 MemberTemplate.h:356
 MemberTemplate.h:357
 MemberTemplate.h:358
 MemberTemplate.h:359
 MemberTemplate.h:360
 MemberTemplate.h:361
 MemberTemplate.h:362
 MemberTemplate.h:363
 MemberTemplate.h:364
 MemberTemplate.h:365
 MemberTemplate.h:366
 MemberTemplate.h:367
 MemberTemplate.h:368
 MemberTemplate.h:369
 MemberTemplate.h:370
 MemberTemplate.h:371
 MemberTemplate.h:372
 MemberTemplate.h:373
 MemberTemplate.h:374
 MemberTemplate.h:375
 MemberTemplate.h:376
 MemberTemplate.h:377
 MemberTemplate.h:378
 MemberTemplate.h:379
 MemberTemplate.h:380
 MemberTemplate.h:381
 MemberTemplate.h:382
 MemberTemplate.h:383
 MemberTemplate.h:384
 MemberTemplate.h:385
 MemberTemplate.h:386
 MemberTemplate.h:387
 MemberTemplate.h:388
 MemberTemplate.h:389
 MemberTemplate.h:390
 MemberTemplate.h:391
 MemberTemplate.h:392
 MemberTemplate.h:393
 MemberTemplate.h:394
 MemberTemplate.h:395
 MemberTemplate.h:396
 MemberTemplate.h:397
 MemberTemplate.h:398
 MemberTemplate.h:399
 MemberTemplate.h:400
 MemberTemplate.h:401
 MemberTemplate.h:402
 MemberTemplate.h:403
 MemberTemplate.h:404
 MemberTemplate.h:405
 MemberTemplate.h:406
 MemberTemplate.h:407
 MemberTemplate.h:408
 MemberTemplate.h:409
 MemberTemplate.h:410
 MemberTemplate.h:411
 MemberTemplate.h:412
 MemberTemplate.h:413
 MemberTemplate.h:414
 MemberTemplate.h:415
 MemberTemplate.h:416
 MemberTemplate.h:417
 MemberTemplate.h:418
 MemberTemplate.h:419
 MemberTemplate.h:420
 MemberTemplate.h:421
 MemberTemplate.h:422
 MemberTemplate.h:423
 MemberTemplate.h:424
 MemberTemplate.h:425
 MemberTemplate.h:426
 MemberTemplate.h:427
 MemberTemplate.h:428
 MemberTemplate.h:429
 MemberTemplate.h:430
 MemberTemplate.h:431
 MemberTemplate.h:432
 MemberTemplate.h:433
 MemberTemplate.h:434
 MemberTemplate.h:435
 MemberTemplate.h:436
 MemberTemplate.h:437
 MemberTemplate.h:438
 MemberTemplate.h:439
 MemberTemplate.h:440
 MemberTemplate.h:441
 MemberTemplate.h:442
 MemberTemplate.h:443
 MemberTemplate.h:444
 MemberTemplate.h:445
 MemberTemplate.h:446
 MemberTemplate.h:447
 MemberTemplate.h:448
 MemberTemplate.h:449
 MemberTemplate.h:450
 MemberTemplate.h:451
 MemberTemplate.h:452
 MemberTemplate.h:453
 MemberTemplate.h:454
 MemberTemplate.h:455
 MemberTemplate.h:456
 MemberTemplate.h:457
 MemberTemplate.h:458
 MemberTemplate.h:459
 MemberTemplate.h:460
 MemberTemplate.h:461
 MemberTemplate.h:462
 MemberTemplate.h:463